1/*
2 * caltontp - convert a date to an NTP time
3 */
4#include <sys/types.h>
5
6#include "ntp_types.h"
7#include "ntp_calendar.h"
8#include "ntp_stdlib.h"
9
10u_long
11caltontp(
12	register const struct calendar *jt
13	)
14{
15    u_long ace_days;			     /* absolute Christian Era days */
16    u_long ntp_days;
17    int    prior_years;
18    u_long ntp_time;
19
20    /*
21     * First convert today's date to absolute days past 12/1/1 BC
22     */
23    prior_years = jt->year-1;
24    ace_days = jt->yearday		     /* days this year */
25	+(DAYSPERYEAR*prior_years)	     /* plus days in previous years */
26	+(prior_years/4)		     /* plus prior years's leap days */
27	-(prior_years/100)		     /* minus leapless century years */
28	+(prior_years/400);		     /* plus leapful Gregorian yrs */
29
30    /*
31     * Subtract out 1/1/1900, the beginning of the NTP epoch
32     */
33    ntp_days = ace_days - DAY_NTP_STARTS;
34
35    /*
36     * Do the obvious:
37     */
38    ntp_time =
39	ntp_days*SECSPERDAY+SECSPERMIN*(MINSPERHR*jt->hour + jt->minute);
40
41    return ntp_time;
42}
43