计算从开始日期到结束日期经过的天数
2012-06-01 01:23
218 查看
#include <stdio.h> struct date { int year; int mon; int day; }; int days[13] = {[1] = 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int getdays(struct date start, struct date end) { struct date tmp; int x = end.year==start.year ? 0 : end.year-start.year-1; x = 365*x + (x-(4-(start.year+1)%4)%4 + 3)/4 - (x-(100-(start.year+1)%100)%100+99)/100 + (x-(400-(start.year+1)%400)%400+399)/400; for (tmp.year=start.year,tmp.mon=(start.mon-1)%12+1, tmp.day=-start.day;\ tmp.mon != end.mon || tmp.year!=end.year; tmp.day += days[tmp.mon], tmp.mon/12&&(tmp.year=end.year),tmp.mon = tmp.mon%12+1 ) tmp.mon == 2 && !((tmp.year % 4 == 0 && tmp.year % 100 != 0) || tmp.year % 400 == 0) && tmp.day--; return x+tmp.day+end.day; } int main(int argc, char **argv) { struct date start,end; scanf("%d%d%d%d%d%d", &start.year, &start.mon, &start.day, &end.year, &end.mon, &end.day); printf("%d\n", getdays(start, end)); return 0; }
相关文章推荐
- 给一个开始日期加上一个天数,计算结束日期
- 计算两日期相差天数(用字符串格式的时间形式来比较)、将时间戳转为字符串,开始到结束的时间差(用时间戳来比较)
- datetimebox输入开始结束日期,JS计算天数并赋值
- PHP计算一年有多少周,每周开始日期和结束日期
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- php计算一年多少周,同时计算出这一周的开始时间和结束时间(可选返回时间戳或日期)
- PHP计算指定日期所在周的开始和结束日期的方法
- java8 利用java7的date 做一个开始日期到结束日期 计算中间一共隔了多少日期
- sql 生成开始日期到结束日期与开始日期的相差天数
- SQL : 开始日期和结束日期,SQL找出中间的所有日期. 关于天数。
- 计算从某个日期开始往前或往后天数的日期
- 输入开始时间和工作天数,计算结束时间,需考虑节假日周末和调休
- java 日历工具类(计算周的开始日期和结束日期,以及包好的日期)
- Calendar根据输入的年份和周数计算该周的开始日期和结束日期
- Oracle 日期周详解以及周开始结束时间计算
- Oracle日期周详解以及周开始结束时间计算
- 计算一年有多少个周,每个周的开始日期和结束日期是什么
- 使用truelicense进行Java程序license控制 经过扩张可以验证license 开始结束日期,验证绑定给定mac地址
- 开始日期,加天数,求结束日期(跨年,闰年)
- 已知开始工作时间和工作日期计算工作日结束时间