Code:
primjer upotrebe
na pocetku se 'ukupno' inicijalizuje nulama
AddDatSub(od1, do1, ukupno)
AddDatSub(od2, do2, ukupno)
sada 'ukupno' sadrzava vrijeme (staz)
===============
FUNCTION AddDatSub(dStart, dEnd, aTime)
PRIVATE aTmp[3]
aTmp[1] = YEAR(dEnd) - YEAR(dStart)
aTmp[2] = MONTH(dEnd) - MONTH(dStart)
aTmp[3] = DAY(dEnd) - DAY(dStart)
WHILE aTmp[3] < 0
aTmp[2]--
aTmp[3] = aTmp[3] + 30
END
WHILE aTmp[2] < 0
aTmp[1]--
aTmp[2] = aTmp[2] + 12
END
aTime[1] := aTime[1] + aTmp[1]
aTime[2] := aTime[2] + aTmp[2]
aTime[3] := aTime[3] + aTmp[3]
AdjustTime(aTime)
FUNCTION AdjustTime(aTime)
* aTime[1] - godine
* aTime[2] - mjeseci
* aTime[3] - dani
IF aTime[3] > 29
aTime[2] = aTime[2] + INT(aTime[3]/30)
aTime[3] = aTime[3] - INT(aTime[3]/30) * 30
END IF
IF aTime[2] > 11
aTime[1] = aTime[1] + INT(aTime[2]/12)
aTime[2] = aTime[2] - INT(aTime[2]/12) * 12
END IF
primjer upotrebe
na pocetku se 'ukupno' inicijalizuje nulama
AddDatSub(od1, do1, ukupno)
AddDatSub(od2, do2, ukupno)
sada 'ukupno' sadrzava vrijeme (staz)
===============
FUNCTION AddDatSub(dStart, dEnd, aTime)
PRIVATE aTmp[3]
aTmp[1] = YEAR(dEnd) - YEAR(dStart)
aTmp[2] = MONTH(dEnd) - MONTH(dStart)
aTmp[3] = DAY(dEnd) - DAY(dStart)
WHILE aTmp[3] < 0
aTmp[2]--
aTmp[3] = aTmp[3] + 30
END
WHILE aTmp[2] < 0
aTmp[1]--
aTmp[2] = aTmp[2] + 12
END
aTime[1] := aTime[1] + aTmp[1]
aTime[2] := aTime[2] + aTmp[2]
aTime[3] := aTime[3] + aTmp[3]
AdjustTime(aTime)
FUNCTION AdjustTime(aTime)
* aTime[1] - godine
* aTime[2] - mjeseci
* aTime[3] - dani
IF aTime[3] > 29
aTime[2] = aTime[2] + INT(aTime[3]/30)
aTime[3] = aTime[3] - INT(aTime[3]/30) * 30
END IF
IF aTime[2] > 11
aTime[1] = aTime[1] + INT(aTime[2]/12)
aTime[2] = aTime[2] - INT(aTime[2]/12) * 12
END IF