Annotation of embedaddon/ntp/libntp/ymd2yd.c, revision 1.1
1.1 ! misho 1: /*
! 2: * ymd2yd - compute the date in the year from y/m/d
! 3: */
! 4:
! 5: #include "ntp_fp.h"
! 6: #include "ntp_unixtime.h"
! 7: #include "ntp_stdlib.h"
! 8:
! 9: /*
! 10: * Tables to compute the day of year from yyyymmdd timecode.
! 11: * Viva la leap.
! 12: */
! 13: static int day1tab[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
! 14: static int day2tab[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
! 15:
! 16: int
! 17: ymd2yd(
! 18: int y,
! 19: int m,
! 20: int d
! 21: )
! 22: {
! 23: int i, *t;
! 24:
! 25: if (m < 1 || m > 12 || d < 1)
! 26: return (-1);
! 27:
! 28: if (((y%4 == 0) && (y%100 != 0)) || (y%400 == 0))
! 29: t = day2tab; /* leap year */
! 30: else
! 31: t = day1tab; /* not a leap year */
! 32: if (d > t[m - 1])
! 33: return (-1);
! 34: for (i = 0; i < m - 1; i++)
! 35: d += t[i];
! 36: return d;
! 37: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>