Works as designed!

Es wird immer abgerundet und nicht kaufmännisch gerundet. Zwischen dem 31.08. und 30.09. liegt kein voller Monat der wäre erst mit dem theoretischen 31.09 erreicht.

Da abgerundet wird erhälst Du 0.

Hier der entsprechende Passus aus der RPG Reference für die Built-in-Function %DIFF().
The result is rounded down, with any remainder discarded. For example, 61 minutes is equal to 1 hour, and 59 minutes is equal to 0 hours.
Außerdem eine Differenz in Monaten zu rechnen ist schon ziemlich heikel. Einmal hat ein Monat 30 Tage, einmal 31 oder auch 28 oder 29 Tage. Für statistische Zwecke werden alle Monate mit 30 Tagen angesetzt.

Birgitta