Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------------------------------------------------------------------------
- // calculate year
- //-----------------------------------------------------------------------------
- uiOffsetYear := 0; // value 0 is equal to base year (1992)
- {_U7_PoeBld_CompilerOption := warning:16220:off;}
- WHILE (TRUE) DO
- {_U7_PoeBld_CompilerOption := warning:16220:on;}
- // check, if year is a leap year (note: 2100 and 2200 aren't leap years)
- uiLeapYear := uiOffsetYear MOD 4;
- IF ((uiLeapYear = 0) AND (uiOffsetYear <> 108 (*2100*)) AND (uiOffsetYear <> 208(*2200*))) THEN
- uiDaysInYear := 366; // leap year
- ELSE
- uiDaysInYear := 365; // normal year
- END_IF;
- // calculate number of all days since base date
- uiDays := uiDays + uiDaysInYear;
- // check, if there is a day overflow
- IF (uiDays >= uiDate) THEN
- year := uiOffsetYear + 1992;
- uiDaysInYear := uiDate - (uiDays - uiDaysInYear);
- EXIT;
- END_IF;
- uiOffsetYear := uiOffsetYear + 1; // next year
- END_WHILE;
- //-----------------------------------------------------------------------------
- // calculate month and day
- //-----------------------------------------------------------------------------
- // check, if year is a leap year (note: 2100 and 2200 aren't leap years)
- IF ((uiLeapYear = 0) AND (uiOffsetYear <> 108 (*2100*)) AND (uiOffsetYear <> 208(*2200*))) THEN
- CASE uiDaysInYear OF // leap year
- 1..31: // january
- month := 1;
- day := uiDaysInYear;
- 32..60: // february
- month := 2;
- day := uiDaysInYear - 31;
- 61..91: // march
- month := 3;
- day := uiDaysInYear - 60;
- 92..121: // april
- month := 4;
- day := uiDaysInYear - 91;
- 122..152: // may
- month := 5;
- day := uiDaysInYear - 121;
- 153..182: // june
- month := 6;
- day := uiDaysInYear - 152;
- 183..213: // july
- month := 7;
- day := uiDaysInYear - 182;
- 214..244: // august
- month := 8;
- day := uiDaysInYear - 213;
- 245..274: // september
- month := 9;
- day := uiDaysInYear - 244;
- 275..305: // october
- month := 10;
- day := uiDaysInYear - 274;
- 306..335: // november
- month := 11;
- day := uiDaysInYear - 305;
- 336..366: // december
- month := 12;
- day := uiDaysInYear - 335;
- ELSE
- month := 0;
- day := 0;
- END_CASE;
- ELSE
- CASE uiDaysInYear OF // normal year
- 1..31: // january
- month := 1;
- day := uiDaysInYear;
- 32..59: // february
- month := 2;
- day := uiDaysInYear - 31;
- 60..90: // march
- month := 3;
- day := uiDaysInYear - 59;
- 91..120: // april
- month := 4;
- day := uiDaysInYear - 90;
- 121..151: // may
- month := 5;
- day := uiDaysInYear - 120;
- 152..181: // june
- month := 6;
- day := uiDaysInYear - 151;
- 182..212: // july
- month := 7;
- day := uiDaysInYear - 181;
- 213..243: // august
- month := 8;
- day := uiDaysInYear - 212;
- 244..273: // september
- month := 9;
- day := uiDaysInYear - 243;
- 274..304: // october
- month := 10;
- day := uiDaysInYear - 273;
- 305..334: // november
- month := 11;
- day := uiDaysInYear - 304;
- 335..365: // december
- month := 12;
- day := uiDaysInYear - 334;
- ELSE
- month := 0;
- day := 0;
- END_CASE;
- END_IF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement