算法:输入两个日期,求之间相差了多少天
2017-08-21 11:05
316 查看
输入两个日期,求他们之间相差了多少天
首先先求出从
首先先求出从
before year到
after year之间相差了多少天,,然后减去
before year已经过去的天数,加上
after year已经过去的天数。
# include "stdio.h" isLead(int year) //判断是否为闰年 { // 能被4整除并且不能被100整除或者能被400整除的年份就是闰年 return (year%4 == 0 && year%100 != 0) || (year%400 == 0) } isMou(int year, int mou) { int mouth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int i, days; if(idLead(year)) { mouth[2] = 29; for (i=1; i<mou; i++) days += mouth[i]; } else { for (i=1; i<mou; i++) days += mouth[i]; } return days; } int main() { int y1, m1, d1; int y2, m2, d2; int i, days = 0; printf("请输入第一个年份(eg:2008-8-8):"); scanf("%d-%d-%d", y1, m1, d1); printf("请输入第二个年份(eg:2008-8-8):"); scanf("%d-%d-%d", y2, m2, d2); if (y1>y2) // 使y2永远大于y1 { int t; t = y1; y1 = y2; y2 = t; } if (y1 == y2) { if (m1>m2) days = (isMou(y1, m1) + d1) - (isMou(y2. m2) + d2); else days = (isMou(y2, m2) + d2) - (isMou(y1. m1) + d1); } else { for (i=y1; i<y2; i++) // 计算开始年份到结束年份的天数 { if (isLead(i)) // 判断是否为闰年 days += 366; else days += 365; } //减去开始年份已经过去的天数,加上结束年份已将过去的天数 days = days - (isMou(y1, m1) + d1) + (isMou(y2. m2) + d2) } printf("他们之间相差 %d 天。", days); return 0; }
相关文章推荐
- excel中计算两个日期之间的相差多少天
- 计算两个日期之间相差多少天
- java中计算两个日期之间相差多少天
- jquery判断两个日期之间相差多少天
- 求两个日期之间相差多少天
- php判断两个日期之间相差多少个月份的方法
- 取得两个日期之间的相差多少天
- php判断两个日期之间相差多少个月份的方法
- js判断两个日期之间相差多少天
- DB2中怎么来求两个日期之间相差多少个月呢?
- 计算两个日期之间相差多少个小时
- PHP判断两个日期之间相差多少个月份
- JS和java 获取系统时间的前一天? 两个日期之间相差多少天?
- 计算两个日期之间相差多少天,计算当前日期是星期几
- 计算两个日期之间相差的天数(JS)
- 牛牛和15朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成26份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地价值和尽可能大,你知道这个值最大可以是多少吗? 输入两个整数n和m(1≤n,m≤75)表示田地的大小,接下来n行,每行包括m个0-9之间的数字,表示每块
- 查询两个日期之间相隔多少天
- 两个日期相差多少时间, 精确到秒
- 两个日期之间相差的天数
- flex计算两个日期之间相差的天数