#define SET_LEAP_SECONDS(utc_rd, leaps) \
(leaps) = \
utc_rd >= 736330 ? 27 : \
utc_rd >= 735780 ? 26 : \
utc_rd >= 734685 ? 25 : \
utc_rd >= 733408 ? 24 : \
utc_rd >= 732312 ? 23 : \
utc_rd >= 729755 ? 22 : \
utc_rd >= 729206 ? 21 : \
utc_rd >= 728659 ? 20 : \
utc_rd >= 728110 ? 19 : \
utc_rd >= 727745 ? 18 : \
utc_rd >= 727380 ? 17 : \
utc_rd >= 726833 ? 16 : \
utc_rd >= 726468 ? 15 : \
utc_rd >= 725737 ? 14 : \
utc_rd >= 724823 ? 13 : \
utc_rd >= 724092 ? 12 : \
utc_rd >= 723727 ? 11 : \
utc_rd >= 723362 ? 10 : \
utc_rd >= 722815 ? 9 : \
utc_rd >= 722450 ? 8 : \
utc_rd >= 722085 ? 7 : \
utc_rd >= 721720 ? 6 : \
utc_rd >= 721354 ? 5 : \
utc_rd >= 720989 ? 4 : \
utc_rd >= 720624 ? 3 : \
utc_rd >= 720259 ? 2 : \
utc_rd >= 720075 ? 1 : \
0; \
#define SET_EXTRA_SECONDS(utc_rd, es) \
switch
(utc_rd +1) { \
case
720075: es = +1;
break
; \
case
720259: es = +1;
break
; \
case
720624: es = +1;
break
; \
case
720989: es = +1;
break
; \
case
721354: es = +1;
break
; \
case
721720: es = +1;
break
; \
case
722085: es = +1;
break
; \
case
722450: es = +1;
break
; \
case
722815: es = +1;
break
; \
case
723362: es = +1;
break
; \
case
723727: es = +1;
break
; \
case
724092: es = +1;
break
; \
case
724823: es = +1;
break
; \
case
725737: es = +1;
break
; \
case
726468: es = +1;
break
; \
case
726833: es = +1;
break
; \
case
727380: es = +1;
break
; \
case
727745: es = +1;
break
; \
case
728110: es = +1;
break
; \
case
728659: es = +1;
break
; \
case
729206: es = +1;
break
; \
case
729755: es = +1;
break
; \
case
732312: es = +1;
break
; \
case
733408: es = +1;
break
; \
case
734685: es = +1;
break
; \
case
735780: es = +1;
break
; \
case
736330: es = +1;
break
; \
default
: es = 0; \
}
#define SET_DAY_LENGTH(utc_rd, dl) \
switch
(utc_rd +1) { \
case
720075: dl = 86400 + +1;
break
; \
case
720259: dl = 86400 + +1;
break
; \
case
720624: dl = 86400 + +1;
break
; \
case
720989: dl = 86400 + +1;
break
; \
case
721354: dl = 86400 + +1;
break
; \
case
721720: dl = 86400 + +1;
break
; \
case
722085: dl = 86400 + +1;
break
; \
case
722450: dl = 86400 + +1;
break
; \
case
722815: dl = 86400 + +1;
break
; \
case
723362: dl = 86400 + +1;
break
; \
case
723727: dl = 86400 + +1;
break
; \
case
724092: dl = 86400 + +1;
break
; \
case
724823: dl = 86400 + +1;
break
; \
case
725737: dl = 86400 + +1;
break
; \
case
726468: dl = 86400 + +1;
break
; \
case
726833: dl = 86400 + +1;
break
; \
case
727380: dl = 86400 + +1;
break
; \
case
727745: dl = 86400 + +1;
break
; \
case
728110: dl = 86400 + +1;
break
; \
case
728659: dl = 86400 + +1;
break
; \
case
729206: dl = 86400 + +1;
break
; \
case
729755: dl = 86400 + +1;
break
; \
case
732312: dl = 86400 + +1;
break
; \
case
733408: dl = 86400 + +1;
break
; \
case
734685: dl = 86400 + +1;
break
; \
case
735780: dl = 86400 + +1;
break
; \
case
736330: dl = 86400 + +1;
break
; \
default
: dl = 86400; \
}