⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntp_calendar.h

📁 网络时间协议NTP 源码 版本v4.2.0b 该源码用于linux平台下
💻 H
字号:
/* * ntp_calendar.h - definitions for the calendar time-of-day routine */#ifndef NTP_CALENDAR_H#define NTP_CALENDAR_H#include "ntp_types.h"struct calendar {	u_short year;	/* year (A.D.) */	u_short yearday;	/* day of year, 1 = January 1 */	u_char month;	/* month, 1 = January */	u_char monthday;	/* day of month */	u_char hour;	/* hour of day, midnight = 0 */	u_char minute;	/* minute of hour */	u_char second;	/* second of minute */};/* * Days in each month.  30 days hath September... */#define	JAN	31#define	FEB	28#define	FEBLEAP	29#define	MAR	31#define	APR	30#define	MAY	31#define	JUN	30#define	JUL	31#define	AUG	31#define	SEP	30#define	OCT	31#define	NOV	30#define	DEC	31/* * We deal in a 4 year cycle starting at March 1, 1900.  We assume * we will only want to deal with dates since then, and not to exceed * the rollover day in 2036. */#define	SECSPERMIN	(60)			/* seconds per minute */#define	MINSPERHR	(60)			/* minutes per hour */#define	HRSPERDAY	(24)			/* hours per day */#define	DAYSPERYEAR	(365)			/* days per year */#define	SECSPERDAY	(SECSPERMIN*MINSPERHR*HRSPERDAY)#define SECSPERYEAR	(365 * SECSPERDAY)	/* regular year */#define	SECSPERLEAPYEAR	(366 * SECSPERDAY)	/* leap year */#define	MAR1900		((JAN+FEB) * SECSPERDAY) /* no leap year in 1900 */#define	DAYSPERCYCLE	(365+365+365+366)	/* 3 normal years plus leap */#define	SECSPERCYCLE	(DAYSPERCYCLE*SECSPERDAY)#define	YEARSPERCYCLE	4/* * Gross hacks.  I have illicit knowlege that there won't be overflows * here, the compiler often can't tell this. */#define TIMES60(val)	((((val)<<4) - (val))<<2)       /* *(16 - 1) * 4 */#define	TIMES24(val)	(((val)<<4) + ((val)<<3))	/* *16 + *8 */#define	TIMES7(val)	(((val)<<3) - (val))            /* *8  - *1 */#define	TIMESDPERC(val)	(((val)<<10) + ((val)<<8) \			+ ((val)<<7) + ((val)<<5) \			+ ((val)<<4) + ((val)<<2) + (val))	/* *big* hack *//* * Another big hack.  Cycle 22 started on March 1, 1988.  This is * STARTCYCLE22 seconds after the start of cycle 0. */#define	CYCLE22		(22)#define	STARTCYCLE22	(u_long)(0xa586b500)	/* 2777068800 */#define	MAR1988		(u_long)(STARTCYCLE22 + (u_long)MAR1900)/* * The length of January + February in leap and non-leap years. */#define	JANFEBNOLEAP	((JAN+FEB) * SECSPERDAY)#define	JANFEBLEAP	((JAN+FEBLEAP) * SECSPERDAY)extern	void	caljulian	P((u_long, struct calendar *));extern	u_long	caltontp	P((const struct calendar *));/* * Additional support stuff for Ed Rheingold's calendrical calculations *//* * Start day of NTP time as days past the imaginary date 12/1/1 BC. * P((This is the beginning of the Christian Era, or BCE.)) */#define DAY_NTP_STARTS 693596/* * The Gregorian calendar is based on a 400 year cycle.  This is the number * of days in each cycle. */#define GREGORIAN_CYCLE_DAYS 146097/* * Days in a normal 100 year leap year calendar.  We lose a leap year day * in years evenly divisible by 100 but not by 400. */#define GREGORIAN_NORMAL_CENTURY_DAYS 36524/* * Days in a normal 4 year leap year calendar cycle. */#define GREGORIAN_NORMAL_LEAP_CYCLE_DAYS 1461#define is_leapyear(y) (y%4 == 0 && !(y%100 == 0 && !(y%400 == 0)))#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -