Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2021
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. //-----------------------------------------------------------------------------
  2. // calculate year
  3. //-----------------------------------------------------------------------------
  4. uiOffsetYear := 0; // value 0 is equal to base year (1992)
  5.  
  6. {_U7_PoeBld_CompilerOption := warning:16220:off;}
  7. WHILE (TRUE) DO
  8. {_U7_PoeBld_CompilerOption := warning:16220:on;}
  9. // check, if year is a leap year (note: 2100 and 2200 aren't leap years)
  10. uiLeapYear := uiOffsetYear MOD 4;
  11. IF ((uiLeapYear = 0) AND (uiOffsetYear <> 108 (*2100*)) AND (uiOffsetYear <> 208(*2200*))) THEN
  12. uiDaysInYear := 366; // leap year
  13. ELSE
  14. uiDaysInYear := 365; // normal year
  15. END_IF;
  16. // calculate number of all days since base date
  17. uiDays := uiDays + uiDaysInYear;
  18. // check, if there is a day overflow
  19. IF (uiDays >= uiDate) THEN
  20. year := uiOffsetYear + 1992;
  21. uiDaysInYear := uiDate - (uiDays - uiDaysInYear);
  22. EXIT;
  23. END_IF;
  24. uiOffsetYear := uiOffsetYear + 1; // next year
  25. END_WHILE;
  26.  
  27. //-----------------------------------------------------------------------------
  28. // calculate month and day
  29. //-----------------------------------------------------------------------------
  30. // check, if year is a leap year (note: 2100 and 2200 aren't leap years)
  31. IF ((uiLeapYear = 0) AND (uiOffsetYear <> 108 (*2100*)) AND (uiOffsetYear <> 208(*2200*))) THEN
  32. CASE uiDaysInYear OF // leap year
  33. 1..31: // january
  34. month := 1;
  35. day := uiDaysInYear;
  36. 32..60: // february
  37. month := 2;
  38. day := uiDaysInYear - 31;
  39. 61..91: // march
  40. month := 3;
  41. day := uiDaysInYear - 60;
  42. 92..121: // april
  43. month := 4;
  44. day := uiDaysInYear - 91;
  45. 122..152: // may
  46. month := 5;
  47. day := uiDaysInYear - 121;
  48. 153..182: // june
  49. month := 6;
  50. day := uiDaysInYear - 152;
  51. 183..213: // july
  52. month := 7;
  53. day := uiDaysInYear - 182;
  54. 214..244: // august
  55. month := 8;
  56. day := uiDaysInYear - 213;
  57. 245..274: // september
  58. month := 9;
  59. day := uiDaysInYear - 244;
  60. 275..305: // october
  61. month := 10;
  62. day := uiDaysInYear - 274;
  63. 306..335: // november
  64. month := 11;
  65. day := uiDaysInYear - 305;
  66. 336..366: // december
  67. month := 12;
  68. day := uiDaysInYear - 335;
  69. ELSE
  70. month := 0;
  71. day := 0;
  72. END_CASE;
  73. ELSE
  74. CASE uiDaysInYear OF // normal year
  75. 1..31: // january
  76. month := 1;
  77. day := uiDaysInYear;
  78. 32..59: // february
  79. month := 2;
  80. day := uiDaysInYear - 31;
  81. 60..90: // march
  82. month := 3;
  83. day := uiDaysInYear - 59;
  84. 91..120: // april
  85. month := 4;
  86. day := uiDaysInYear - 90;
  87. 121..151: // may
  88. month := 5;
  89. day := uiDaysInYear - 120;
  90. 152..181: // june
  91. month := 6;
  92. day := uiDaysInYear - 151;
  93. 182..212: // july
  94. month := 7;
  95. day := uiDaysInYear - 181;
  96. 213..243: // august
  97. month := 8;
  98. day := uiDaysInYear - 212;
  99. 244..273: // september
  100. month := 9;
  101. day := uiDaysInYear - 243;
  102. 274..304: // october
  103. month := 10;
  104. day := uiDaysInYear - 273;
  105. 305..334: // november
  106. month := 11;
  107. day := uiDaysInYear - 304;
  108. 335..365: // december
  109. month := 12;
  110. day := uiDaysInYear - 334;
  111. ELSE
  112. month := 0;
  113. day := 0;
  114. END_CASE;
  115. END_IF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement