本文目录一览:
- 1、用c语言从键盘任意输入一个日期(年月日),输出第二天的日期(年月日)。
- 2、c语言编程:输入年月日,求出该天是该年的第几天
- 3、编写一个c语言程序,输入一个年月日,输出这个日期是这一年的第几天。(考虑闰年)
- 4、C语言 年月日
- 5、C语言编程:给定一个日期(年/月/日)计算该日期是所在年的第几天。
- 6、c语言输出年月日
用c语言从键盘任意输入一个日期(年月日),输出第二天的日期(年月日)。
源程序如下:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include iostream
using namespace std;
int main()
{
int s[2][13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31, };
int year = 0;
int month = 0;
int day = 0;
int n, i, daytemp;
int flag = 0;
int nyear = 0, nmonth = 0, nday = 0;
printf("输入年月日\n");
scanf("%d%d%d", year, month, day);
//printf("输入天数\n");
//scanf("%d",n);
n = 1;
if (year 0 || month 0 || month12 || day 1 || n 0)
{
printf("输入数据错误\n");
return 1;
}
daytemp = day + n;//累加天数
if ((year % 4 == 0 year % 100 != 0) || year % 400 == 0)//闰年置1
flag = 1;
if (day s[flag][month])
{
printf("输入日期与年月不符.\n");
return 1;
}
if (daytemp = s[flag][month])//当前日期加天数在本月
{
nyear = year;
nmonth = month;
nday = daytemp;
}
else
{
i = month;
nyear = year;
while (daytemp s[flag][i])//循环递减,直到当前日期加天数在本月
{
daytemp = daytemp - s[flag][i];
i++;
if (i 12)//超过一年,年累加
{
nyear++;
if ((nyear % 4 == 0 nyear % 100 != 0) || nyear % 400 == 0)
flag = 1;
else
flag = 0;
i = i - 12;
}
}
nmonth = i;
nday = daytemp;
}
printf("%d年%d月%d日第%d天后是:\n", year, month, day, n);
printf("%d年%d月%d日\n", nyear, nmonth, nday);
return 0;
}
程序运行结果如下:
扩展资料:
其他实现方式:
int monthsize(int year, int month) {
int days;
if (month == 2) {
if (year % 4 == 0 year % 100 != 0 || year % 400 == 0)
return 29;
return 28;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days = 31; break;
case 4:
case 6:
case 9:
case 11: days = 30; break;
}
return days;
}
int main()
int year, month, day, days;
printf("年 月 日:");
while (scanf("%d%d%d", year, month, day) == 3) {
days = monthsize(year, month);
if (days == day) {
if (month == 12) {
++year;
month = 1;
day = 1;
}
else ++month;
}
else ++day;
printf("第二天是:%d/%02d/%02d\n", year, month, day);
printf("年 月 日(q to quit):");
}
return 0;
}
c语言编程:输入年月日,求出该天是该年的第几天
#includestdio.h
intmain()
{intday,month,year,sum,leap;
printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");
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==0year%100!=0))
{//判断是不是闰年
leap=1;
}
else
{leap=0;
}
if(leap==1month2)
{//*如果是闰年且月份大于2,总天数应该加一天
sum++;
}
printf("这是这一年的第%d天。",sum);
printf("\n");
}
扩展资料
使用c语言编程结构tm格式化时间注意事项:
tm结构在C/C++中处理日期和时间相关的操作时,显得尤为重要。tm结构以C结构的形式保存日期和时间,大多数与时间相关的函数都使用了tm结构。
使用了tm结构和各种与日期和时间相关的函数。在练习使用结构之前,需要对C结构有基本的了解,并懂得如何使用箭头-运算符来访问结构成员。
参考资料来源:百度百科—c语言
编写一个c语言程序,输入一个年月日,输出这个日期是这一年的第几天。(考虑闰年)
#include stdio.h
void main()
{
int year=0,month=0,day=0,i=0,sum=0;
while(1)
{
printf("请输入年份:");
scanf("%d",year);
printf("请输入月份:");
scanf("%d",month);
printf("请输入日期:");
scanf("%d",day);
i=0; //i变量是为了控制月和日的格式是否输入正确;
switch(month) //判断每个月的日期是否输入正确;
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day0day=31)
{
i=1;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day0day=30)
{
i=1;
}
break;
case 2: //2月闰年可以输入29日;
if((year%4==0year%100!=0)||year%400==0)
{
if(day0day=29)
{
i=1;
}
}
else
{
if(day0day=28)
{
i=1;
}
}
break;
default: //如果输入不是1-12月份,那么月份输入有误;
i=0;
break;
}
if(i) //如果i变量为1,那么输入正确,否则重新输入;
{
break;
}
else
{
printf("请输入正确的年月日!!!\n");
}
}
i=0;
switch(month) //把每个月的日期累加;
{
case 12:
i=i+30;
case 11:
i=i+31;
case 10:
i=i+30;
case 9:
i=i+31;
case 8:
i=i+31;
case 7:
i=i+30;
case 6:
i=i+31;
case 5:
i=i+30;
case 4:
i=i+31;
case 3:
if((year%4==0year%100!=0)||year%400==0)
{
i=i+29;
}
else
{
i=i+28;
}
case 2:
i=i+31;
case 1:
;
}
sum=i+day;
printf("%d年%d月%d日是%d年的第%d天\n!",year,month,day,year,sum);
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言 年月日
//还要考虑月日的大小比较
#includestdio.h
#includestdlib.h
int main(){
int y0,m0,d0,y1,m1,d1;
printf("生日(年 月 日): ");
scanf("%d %d %d",y0,m0,d0);
printf("当前日期(年 月 日): ");
scanf("%d %d %d",y1,m1,d1);
int age=y1-y0;
if(m1m0 || (m1==m0 d1d0))
age--;
printf("年龄: %d",age);
return 0;
}
C语言编程:给定一个日期(年/月/日)计算该日期是所在年的第几天。
//1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
//情况,闰年且输入月份大于3时需考虑多加一天。
#includestdio.h
void
main(){
int
year,month,day,i,leap;
int
fleap(int
a);
printf("请输入年月日如(2009,1,1):");
scanf("%d,%d,%d",year,month,day);
//printf("%d,%d,%d\n",year,month,day);
switch(month){
case
1:i=0;break;
case
2:i=31;break;
case
3:i=31+28;break;
case
4:i=31+28+31;break;
case
5:i=31+28+31+30;break;
case
6:i=31+28+31+30+31;break;
case
7:i=31+28+31+30+31+30;break;
case
8:i=31+28+31+30+31+30+31;break;
case
9:i=31+28+31+30+31+30+31+31;break;
case
10:i=31+28+31+30+31+30+31+31+30;break;
case
11:i=31+28+31+30+31+30+31+31+30+31;break;
case
12:i=31+28+31+30+31+30+31+31+30+31+30;break;}
leap=fleap(year);
if(leap==1)
{
i=i+day+1;
printf("\n\n\n\n\n
%d年是润年\n",year);}
else
{i=i+day;printf("\n\n\n\n\n
%d年不是润年\n",year);}
printf("%d年%d月%d是%d年的第%d天",year,month,day,year,i);
getch();}
int
fleap(int
a){
int
leap;
if(a%4==0)
{
if(a%100==0)
{
if(a%400==0)
leap=1;
else
leap=0;
}else
leap=1;
}
else
leap=0;
return(leap);}//判断润年的
c语言输出年月日
下面是这段代码,配合注释体会一下吧
#include stdio.h
void MonthDay(int year,int yearDay,int *pMonth,int *pDay);
int main()
{
int year,yearDay,month,day;
scanf("%d%d",year,yearDay);//输入年份和天数
MonthDay(year,yearDay,month,day);
printf("%d-%d-%d",year,month,day);
return 0;
}
void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};//这个数组保存每月的天数
if(year%4==0year%100!=0||year%400==0)//判断是否为闰年
days[1]=29;//闰年的二月有29天
*pMonth=1;//从一月开始看
while(yearDaydays[*pMonth-1])//如果哪一天超出这个月
{
yearDay-=days[*pMonth-1];//求出超出此月的天数
(*pMonth)++;//继续考虑下一月
}
*pDay=yearDay;
}