正文
计算天数的函数c语言 计算天数c语言数组
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
如何用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;
}
给定年月日 怎样用C语言编程计算2个日期之间的时间天数
1970 年以后计算天数的函数c语言的时间计算天数的函数c语言,可以用 time.h 里的函数计算。时间精度为秒。按题目要求计算天数的函数c语言,输出时间单位用天。程序如下:
#include stdio.h
#include time.h
time_t YMD_hhmmss_2_s70(int Y, int M, int D, int hh, int mm, int ss){
struct tm *target_tm;
time_t tt;
time (tt);
target_tm=localtime(tt);
target_tm-tm_year = Y - 1900;
target_tm-tm_mon= M - 1;
target_tm-tm_mday = D;
target_tm-tm_hour = hh; // hour
target_tm-tm_min = mm;
target_tm-tm_sec = ss;
tt = mktime(target_tm); // from tm to time_t (s)
return tt;
}
int main()
{
int y1,m1,d1,y2,m2,d2;
time_t t1,t2;
int dt;
printf("input y1 m1 d1: ");
scanf("%d %d %d",y1,m1,d1);
printf("\ninput y2 m2 d2: ");
scanf("%d %d %d",y2,m2,d2);
t1 = YMD_hhmmss_2_s70(y1,m1,d1,0,0,0);
t2 = YMD_hhmmss_2_s70(y2,m2,d2,0,0,0);
dt = (t2-t1)/(24*3600);
printf("\ndt=%d\n",dt);
return 0;
}
这里未包含日期的合法性判断。
1970 年以前 要另写程序。某年的日子是当年的第几天可用下面函数得出:
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;iM;i++) JD+=MonthDay[i];
if (((Y%4==0)(Y%100!=0)||(Y%400==0)) (M2)) JD++;
return JD;
}
整年的天数,涉及闰年的判断:
某年是否闰年,用 (Y%4==0)(Y%100!=0)||(Y%400==0) 判断。闰年366天,平年365天。 有计算天数的函数c语言了这些,写程序不难。
未考虑公元前的年月日计算。
急求!C语言计算天数
#includestdio.h
int main()
{
int yyyy,mm,dd,a,b;
scanf("%d/%d/%d",yyyy,mm,dd);
a=31*(mm1)+28*(mm2)+31*(mm3)+30*(mm4)+31*(mm5)+30*(mm6)+31*(mm7)+31*(mm8)+30*(mm9)+31*(mm10)+30*(mm11)+dd;
b=((yyyy%4==0)*(yyyy%100!=0)+(yyyy%400==0))*(mm2);
printf("%d\n",a+b);
return 0;
}
关于计算天数的函数c语言和计算天数c语言数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。