Annotation of embedaddon/ntp/libntp/ymd2yd.c, revision 1.1.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>