当前位置:首页 » 编程语言 » 输入日期算天数c语言

输入日期算天数c语言

发布时间: 2023-04-21 19:41:16

1. c语言中输入一个日期计算他是今年的第几天

输入年月日三个值,先累加该年之前各个月的每月天数,最后累加日期天数即可获取结果。

一、算法设计:

1、输入年月日三个值;

2、为保证程序健壮性,可以对三个值的合法性进行判断,只对合法数据进行操作;

3、累加之前各月天数;

4、累加当前日值;

5、输出结果。

二、注意点:

可以使用数组存储各个月份的天数,用循环累加。需要注意的是闰年的判断。对于闰年,2月要多加一天。

三、参考代码:

#include<stdio.h>
intmain()
{
intmdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};//十二个月的天数。
inty,m,d,r=0,i;
scanf("%d%d%d",&y,&m,&d);
if(y%400==0||(y%4==0&&y%100!=0))//闰年。
mdays[1]=29;//设置闰年二月值。
if(y<0||m<=0||m>12||d<=0||d>mdays[m-1])//输入非法。
{
printf("输入年月日不合法 ");//提示并退出。
return-1;
}
for(i=0;i<m-1;i++)//累加之前各个月。
r+=mdays[i];
r+=d;//累加日期值。
printf("%d ",r);//输出结果。
return0;
}

2. 用c语言编程计算输入出生日期可计算出到现在存活时间天数

使用time.h,首先使用mktime函数将出生日期换算成time_t,也就是秒数。然后再使用time函数获取当时时间的秒数,两者相减,就是相差的秒数,再除以一天的秒数换算成天数就可以了。


全部源码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

main()
{
intyear,mon,mday;
time_tt1,t2;
intdays;
structtmtm;

printf("Pleaseinputyear,mon,day:");
scanf("%d,%d,%d",&year,&mon,&mday);
memset(&tm,0,sizeof(tm));
tm.tm_year=year-1900;
tm.tm_mon=mon-1;
tm.tm_mday=mday;
t1=mktime(&tm);
t2=time(NULL);

days=(t2-t1)/(24*3600);
printf("%d ",days);
}

3. 从键盘输入一个年月日,编程求这一天到年底的天数

假设输入日期格式为:yyyy-mm-dd,如2022-1-1,C语言代码如下:

#include <stdio.h>

int main() {

int y, m, d, i;

scanf("%d-%d-%d", &y, &m, &d); // 要求输入日期格式为yyyy-mm-dd

姿漏桥 int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) // 闰年

month[2] = 29; // 闰年2月为29天

if (m <= 0 || m > 12) {

printf("月份%d不属于[1,12],程序退出 ", m);

return -1;

}

int days = month[m] - d; // 距当月月底的天数

if (days < 0) {

printf("%d年%d月最多%d天,程序退出 ", y, m, month[m]);

return -1;

}

for (i = m + 1; i <= 12; i++)

days += month[i]; // 下月开始距年底的天数

printf("%d ", days);

return 0;

}

运行结果如下:

输入2022-1-1,2022年为平年搜颂,一年共365天迹猛,所以2022年第一天距年底还有364天

输出为364,符合题意,望采纳~

4. 怎么用C语言输入一个日期,求该日期是该年的第几天

我大概给个思路,顷橡世代码是现写的 没调如租试
先定义每个月的天数,2月按28天算
输入雀肢年月日后,根据年判断是否闰年(闰年加1天),再从1月加到当月的前一月,再加上日期就可以了

#include <stdio.h>
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{int yy,mm,dd, days;
int i;
printf("input year:"); scanf("%d", &yy);
printf("input month:"); scanf("%d", &mm);
printf("input day:"); scanf("%d", &dd);
/* 如果大于2月,要做闰年的判断,忘了,不一定准 */
if( mm > 2 && ((year%4==0 && year%100!=0) || year%400==0) ) days = 1;
else days = 0;

/* 加上前面各整月的天数 */
for(i = 0; i < mm-1; i++) days += month[i];

/* 加上日数 */
days += dd;

printf("This is the %d day of year %d!! ", days, yy);
}

比如输入 1999 2 1
应该输出:This is the 32 day of year 1999!!

5. c语言关于计算天数

m[12]=(31,28,31,30,31,30,31,31,30,31,30,31);

这句的写法是错的
一、初始化应该在数组定义时
二、括号应该用{}
修改如下:
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};

具体到其它问题,请LZ自行查阅处理,你的算法逻辑好麻烦,看的不是很懂

6. c语言编写程序,输入某年某月,求该月的天数

#include<iostream.h>
voidmain()
{
intYear,Month,Day;
cout<<"Pleaseenterthecurrentdate(年月以空格分隔):";
cin>>Year>>Month;
while(Month<=0||Month>12)
{
cout<<"输入时间有误,请重新输入:";
cin>>Year>>Month;
}
switch(Month)
{
case4:
case6:
case8:
case9:
case11:
Day=30;
break;
case2:
if(Year%400==0||Year%4==0&&nYear%100!=0)
Day=29;
else
Day=28;
break;
default:Day=31;
}
cout<<"该月天数为:"<<Day<<"天";
}

7. c语言编程:输入年月日,求出该天是该年的第几天

#include<stdio.h>

intmain()

{intday,month,year,sum,leap;

printf(" 请输入年、月、日,格式为:年,月,日(2015,12,10) ");

scanf("%d%d%d",&year,&month,&day);//格式为:20190510

switch(month)//先计算某月以前月份的总天数

{case1:sum=0;break;

case2:sum=31;break;

case3:sum=59;break;

case4:sum=90;break;

case5:sum=120;break;

case6:sum=151;break;

case7:sum=181;break;

case8:sum=212;break;

case9:sum=243;break;

case10:sum=273;break;

case11:sum=304;break;

case12:sum=334;break;

default:printf("dataerror");break;}

sum=sum+day;//再加上某天的天数

if(year%400==0||(year%4==0&&year%100!=0))

{//判断是不是闰年

leap=1;

}

else

{leap=0;

}

if(leap==1&&month>2)

{//*如果是闰年且月份大于2,总天数应该加一天

sum++;

}

printf("这是这一年的第%d天。",sum);

printf(" ");

}

(7)输入日期算天数c语言扩展阅读

使用c语言编程结构tm格式化时间注意事项:

tm结构在C/C++中处理日期和时间相关的操作时,显得尤为重要。tm结构以C结构的形式保存日期和时间,大多数与时间相关的函数都使用了tm结构。

使用了tm结构和各种与日期和时间相关的函数。在练习使用结构之前,需要对C结构有基本的了解,并懂得如何使用箭头->运算符来访问结构成员。

8. 急求!C语言计算天数

#include<stdio.h>
int main()
{
int yyyy,mm,dd,a,b;
scanf("%d/%d/%d",&yyyy,&mm,&dd);
a=31*(mm>1)+28*(mm>2)+31*(mm>3)+30*(mm>4)+31*(mm>5)+30*(mm>6)+31*(mm>7)+31*(mm>8)+30*(mm>9)+31*(mm>10)+30*(mm>11)+dd;
b=((yyyy%4==0)*(yyyy%100!=0)+(yyyy%400==0))*(mm>2);
printf("%d\n",a+b);
return 0;
}

9. 输入年,月,计算该月的天数 C语言程序

#include"stdio.h"
#include"stdlib.h"
intmain()
{inty,m,days;//存放年、月、天数的变量
printf("请输入年、月(逗号隔开): ");//输入提示
scanf("%d,%d",&y,&m);//输入边长(输入时用逗号隔开)
printf("%d%d ",y,m);
switch(m)
{case1:case3:case5:case7:case8:case10:case12:days=31;break;
case4:case6:case9:case11:days=30;break;
case2:{if(y%4==0&&y%100!=0||y%400==0)days=29;//闰年
elsedays=28;
break;
}
default:days=0;//输入月份不对
}
printf("%d年%d月有%d天 ",y,m,days);
system("pause");
}

10. C语言输入年月日计算该日是该年第几天,

//根据用户输入的日期计算出该日期是该年的第多少天。
#include
#include
//system("pause")
main()
{
int year,month,day,total,leap; //total总天数 ,leap用于闰年的2月天数
printf("请输入年 月 日(按顺序,中间用空格隔开):");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0 && year%100!=0) || year%400==0) //判断是否闰年,闰年2月多一天,所以闰年leap为1,平年为leap为0。
{
leap=1;
}
else
{
leap=0;
}
switch(month) //根据月份计算对应的最终天数。
{
case 1: total=day;break;
case 2: total=31*1+day;break;
case 3: total=31*1+28+leap+day;break;
case 4: total=31*2+28+leap+day;break;
case 5: total=31*2+28+leap+30*1+day;break;
case 6: total=31*3+28+leap+30*1+day;break;
case 7: total=31*3+28+leap+30*2+day;break;
case 8: total=31*4+28+leap+30*2+day;break;
case 9: total=31*5+28+leap+30*2+day;break;
case 10: total=31*5+28+leap+30*3+day;break;
case 11: total=31*6+28+leap+30*3+day;break;
case 12: total=31*6+28+leap+30*4+day;break; //12月之前的11个月中有6个31天,4个30天,2月为28天+leap。
}
if(year>=1 && year<=9999 && month>=1 && month<=12 && day>=1 && day<=31) //判断输入是否正解,年份最大为9999,可自行更改。
{
printf("\n\t%d月%d日止,%d年已过去%d天。\n\n",month,day,year,total);
system("pause"); //按任意键继续...
}
else
{
printf("\n\t错误\n\n");
system("pause"); //按任意键继续...
}
return 0;
}

热点内容
jrtplib编译 发布:2024-11-01 18:06:01 浏览:226
java代码中if 发布:2024-11-01 18:02:40 浏览:377
android定时刷新 发布:2024-11-01 17:59:43 浏览:999
炎黄解说我的世界服务器生存 发布:2024-11-01 17:59:42 浏览:542
如何清楚网页缓存 发布:2024-11-01 17:53:58 浏览:552
linux文件权限不够 发布:2024-11-01 17:53:19 浏览:917
c语言中10是什么意思 发布:2024-11-01 17:45:08 浏览:892
装棉衣压缩袋 发布:2024-11-01 17:37:18 浏览:297
android40ble蓝牙 发布:2024-11-01 17:36:58 浏览:712
数据库表对比 发布:2024-11-01 17:18:42 浏览:985