如何用C语言计算日期间离天数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C语言计算日期间离天数?相关的知识,希望对你有一定的参考价值。

#include <stdio.h>

int main(void)

int y1, m1, d1;
int y2, m2, d2;
int i, sum = 0;
int month[12] = 31, 28, 31, 30, 31, 30, 31, 31, 30 ,31, 30 ,31;

/*input two dates*/
scanf("%d%d%d", &y1, &m1, &d1);
scanf("%d%d%d", &y2, &m2, &d2);

/*sum up the year between y1 and y2*/
for (i = y1 + 1; i < y2; ++i)
if (i % 400 == 0 || i % 100 != 0 && i % 4 == 0) sum += 366;
else sum += 365;

/*sum up the remaining days in y1*/
for (i = m1; i < 12; ++i)
sum += month[i];
sum += month[m1 - 1] - d1;
if (m1 <= 2 && (y1 % 400 == 0 || y1 % 100 != 0 && y1 % 4 == 0)) ++sum;

/*sum up the past days in y2*/
for (i = 0; i < m2; ++i)
sum += month[i];
sum += d2;
if (m2 > 2 && (y1 % 400 == 0 || y1 % 100 != 0 && y1 % 4 == 0)) ++sum;

printf("The total days is %d\n", sum);
return 0;
参考技术A 我学C#、Java的,对C不是很了解,仅仅提供个思路:
请问一下C有没有日期函数?有吧应该?
如果有的话,是不是能返回自1970年1月1日起到你输入的日期的毫秒数呢?
能返回的话,你输入的两个时间都换成毫秒数,一减,得到的不就是两个
日期相差的毫秒数?
然后把毫秒数换算成天数不就成了?

如何用c语言来计算日期间隔天数?

如何用c语言来计算日期间隔天数:
比如2006.05.23到2045.12.15间隔天数是多少,任意输入两个日期计算他们的间隔天数,用简单的c语言如何实现啊?

楼上的说的太麻烦了(真是傻瓜做法)//定义两个时间DateTime time1=Convert.ToDateTime("2006-05-23");DateTime time2=Convert.ToDateTime("2045-12-15");//计算间隔天数(精确到毫秒格式为“2222.22.22.2222”)TimeSpan span = (TimeSpan)(time2-time1);int result = Convert.ToInt32(Convert.ToString(span).SubString(0,Convert.ToString(span).IndexOf(".")));//result就是你要的天数 参考技术A 傻瓜式做法:
先做一个变量赋全年多少天
再做12个变量代表12个月,再赋每月多少天
然后就可以计算两个日期之间的相隔天数
怎么做不用教了吧
参考技术B 说的不错

以上是关于如何用C语言计算日期间离天数?的主要内容,如果未能解决你的问题,请参考以下文章

如何用函数计算天数

如何用excel计算月份和天数?

如何用excel计算两个日期之间相差的年数和月数

如何用PHP+MySQL计算两个日期之间的月份数和其余下的天数?

如何用EXCEL计算两个日期之间相差的年数和月数?

如何用EXCEL计算两个日期之间相差的年数和月数?