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>