- 论坛徽章:
- 0
|
回复 1楼 阿Benni 的帖子
- /* for date-calculation use */
- #define leap(y) \
- ((y) % 400 == 0 || ((y) % 100 != 0 && (y) % 4 == 0))
- #define to_beg_date(y, m, d) \
- ((y) * 365 + (y) / 4 - (y) / 100 + (y) / 400 \
- + ((m) - 1) * 30 + ___m_days[(m) - 1] \
- + (d) - 1 - (leap(y) && (m) < 3))
- #define LDate(y, m, d) \
- (to_beg_date(y, m, d) - to_beg_date(1899, 12, 31))
- /* for date calculation */
- short ___m_days[] = {
- 0, 1, -1, 0, 0, 1, 1, 2, 3, 3, 4, 4
- };
复制代码
注:
是仿照informix数据库日期的规则, 1899/12/31日为第0天, 依次, 1900/01/01为1,
这样, 和月份, 是否闰年就没有关系了吧 |
|