>ldBegin = DATE(1965, 4, 26) >ldEnd = DATE() >STORE 0 TO lnYear, lnMonhts, lnDays >DO WHILE .t. > DO CASE > CASE GOMONTH(ldBegin,12) <= ldEnd > lnYear = lnYear + 1 > ldBegin = GOMONTH(ldBegin, 12) > CASE GOMONTH(ldBegin,1) <= ldEnd > lnMonhts = lnMonhts + 1 > ldBegin = GOMONTH(ldBegin, 1) > CASE ldBegin < ldEnd > lnDays = lnDays + 1 > ldBegin = ldBegin + 1 > OTHERWISE > EXIT > ENDCASE >ENDDO >? lnYear, lnMonhts, lndays >>Of couse there is no checking for valid date period and no error handling at all. Also not well tested :-)))