计算两个日期相差多少天

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3
 4 #define DayOfyear 365
 5
 6 #define ISLEAP(year) ((year % 4 = 0 && year % 100 != 0) || year % 400 == 0)
 7
 8 int isLeap(int year);
 9 int dayOftheYear(int year, int month, int day);
10 int diff(int year1, int month1, int day1, int year2, int month2, int day2);
11 int main()
12 {
13     int year1, month1,day1,
14         year2,month2,day2;
15
16     while(printf("input two dates:XXXX XX XX\t XXXX XX XX\n"),scanf_s("%d %d %d %d %d %d",&year1,&month1,&day1,&year2,&month2,&day2) == 6)
17     {
18         printf("The days between the two dates is %d\n",diff(year1,month1,day1,year2,month2,day2));
19     }
20     system("pause");
21     return 0;
22 }
23 //判断闰年
24 int isLeap(int year)
25 {
26     if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
27         return 1;//为闰年
28     else
29         return 0;//不是闰年
30 }
31
32 //计算某个日期在该年第多少天
33 int dayOftheYear(int year, int month, int day)
34 {
35     int sum = 0;//记录天数
36     int index_month;//遍历月份的下标
37     if(month < 1 || month > 12 || day < 1 || day > 31)
38     {
39         printf("The date is illegal\n");
40         system("pause");
41         return 0;
42     }
43     for(index_month = 1; index_month < index_month; index_month++)
44     {
45         switch(index_month)
46         {
47         case 1:
48         case 3:
49         case 5:
50         case 7:
51         case 8:
52         case 10:
53         case 12:
54             sum += 31;
55             break;
56         case 4:
57         case 6:
58         case 9:
59         case 11:
60             sum += 30;
61             break;
62         case 2:
63             if(isLeap(year) == 1)
64                 sum += 29;
65             else
66                 sum += 28;
67             break;
68         }
69     }
70     sum += day;
71     return sum;
72 }
73
74 int diff(int year1, int month1, int day1, int year2, int month2, int day2)
75 {
76     int sum = 0;//记录两个日期的天数
77     int index_year;//遍历年数
78     int num_leap = 0;//记录闰年数
79
80     for(index_year = year1; index_year < year2; index_year++)
81     {
82         if(isLeap(index_year) == 1)
83             num_leap++;
84     }
85     sum = num_leap + (year2 - year1) * DayOfyear + dayOftheYear(year2,month2,day2) - dayOftheYear(year1,month1,day1);
86     return sum;
87 }
时间: 2024-08-24 07:21:18

计算两个日期相差多少天的相关文章

计算两个日期相差年月日

1 /** 2 +---------------------------------------------------------- 3 * 功能:计算两个日期相差 年 月 日 4 +---------------------------------------------------------- 5 * @param date $date1 起始日期 6 * @param date $date2 截止日期日期 7 +-------------------------------------

计算两个日期相差

package com.xcfh.util; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar; /** *  * @ClassName: DateMargin *  * @Description: 计算两个日期相差天数 * @author PineT

php计算两个日期相差 年 月 日

在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等.在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年.月.日. 转自: http://www.php1.cn/Content/php_JiSuanLiangGeRiQiXiangChaNianYueRi.html /**   +----------------------------------------------------------

MySQL计算两个日期相差的天数、月数、年数

MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF(类型,开始时间,结束时间) 相差的秒数: SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')) 相差的分钟数: SELECT TIMESTAMPDIFF(MINUTE,'

Java计算两个日期相差的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { /

Java 计算两个日期相差的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { /

Java 计算两个日期相差月数、天数

package com.myjava; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; public class MyCalendar { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException {

实现:判断日期之间关系(相交,相离,重合),得到相交重合的天数以及计算两个日期相差的天数

package com.xiawei.repeatdays; import java.util.Date; /** * 判断日期之间关系(相交,相离,重合),得到相交重合的天数 * */public class RepeatDays { /** * 将两个日期相减的结果以字符串秒的格式返回 */ public static String getDayDifference(Date d1 , Date d2){ StringBuffer ds = new StringBuffer(); long

mysql计算两个日期相差的天数。

DATEDIFF() 函数可以返回两个日期之间的天数. 如下: SELECT DATEDIFF('2015-06-29','2015-06-12') AS DiffDate 结果得17 SELECT DATEDIFF('2015-06-12','2015-06-29') AS DiffDate 结果得-17