c语言中如何输入年月日 c语言中 求解如何判断输入的年月日是否合理

作者&投稿:佴品 (若有异议请与网页底部的电邮联系)
就这么写的,没调试,你自己调一下好吧

#include <stdio.h>
void main()
{
int year,month,date;
scanf("%d-%d-%d",&year,&month,&date);
printf("%d-%d-%d",year,month,date);

if(year<0||year>3000)
printf("Error!");
if(month>12||month<1)
printf("Error!");
switch(month)
{
case 1: if(date>31||date<1) printf("Error!");break;
case 2: if((year%4==0)&&(year%100!=0)||(year%400==0))
{
if(date>29||date<1) printf("Error!");
}
else
if(date>28||date<1) printf("Error!");
break;
case 3: if(date>31||date<1) printf("Error!");break;
case 4: if(date>30||date<1) printf("Error!");break;
case 5: if(date>31||date<1) printf("Error!");break;
case 6: if(date>30||date<1) printf("Error!");break;
case 7: if(date>31||date<1) printf("Error!");break;
case 8: if(date>31||date<1) printf("Error!");break;
case 9: if(date>30||date<1) printf("Error!");break;
case 10: if(date>31||date<1) printf("Error!");break;
case 11: if(date>30||date<1) printf("Error!");break;
case 12: if(date>31||date<1) printf("Error!");break;
}
}

你要用来做什么?

在什么语言中输入年月日?

C语言编写 输入 年 月 日 ,输出这个日期的下一天的日期~

利用C标准函数time,localtime,mktime来实现
先将输入的年月日放到tm结构中
用mktime()函数生成一个整数
用这个整数+86400(24*60*60)
然后再转换成日期就OK了

代码里面的主要问题时:
if((month==1,3,5,7,8,10,12)这样的判断语句是有问题,应该使用||运算符的;
if和else语句没有配合好,主要是你的代码嵌套比较多,一定要注意代码缩进,否则自己可能都没有发现那个地方else没有写的。。


下面的代码,是修改后,运行结果附在后面:
#include#includeint main(){ int year,month,day,sum; printf("输入年月日(例如:2013.4.5):"); scanf("%d,%d,%d",&year,&month,&day); if(year>0&&month31)) { printf("该月不存在输入的天数,请重新输入1
"); } else if(((month==4)||(month==6)||(month==9||11))&&(day30)) { printf("该月不存在输入的天数,请重新输入2
"); } else if(month==2) { if(((year%4==0&&year%100!=0)||year%400==0)&&(day29)) { printf("二月不存在输入的天数,请重新输入3
"); } else { if(((year%4!=0&&year%100!=0)||year%400!=0)&&(day28)) { printf("二月不存在输入的天数,请重新输入4
"); } } } else { switch(month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; } sum+=day; if(((year%4==0&&year%100!=0)||year%400==0)&&(month>2)) { sum++; printf("这是%d年的第%d天
",year,sum); } else { printf("这是%d年的第%d天
",year,sum); } } } system("pause"); return 0;}运行结果为:

求C语言程序,任意输入一个年月日,要求输出是星期几,要在Visual C++6.0...
答://判断输入的年月日是否正确 if(year<0){ printf("年份不能为负数!请重输: ");goto loop;} else if(month<1||month>12){ printf("输入月份只能在1-12之间!请重输: ");goto loop;} else if(day<1||day>31){ printf("日的最大范围只在1-31之间!请重输: ");goto loop;} else ...

c语言输入年,月,日,判断该日期是当年的第几天?
答:include <stdio.h>int run (int year) //判断闰年{ if((year%4==0&&year%100!=0)||year%400==0) return 2; else return 1; }int jisuan (int year,int month) //计算当月之前度过的日子{ int x,i,s=0; int date[2][12]= { {31,28,31,3...

编写一个c语言程序,输入一个年月日,输出这个日期是这一年的第几天...
答: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+...

如何用SQL语句输出2008-12-15的年月日
答:需要设置函数公式select * from 表名 where Convert(varchar(10),日期字段,120)='2008-12-15'即可输出。如获取年月日,设置 select CONVERT(varchar(100), GETDATE(), 23)输出2017-03-06 ,如需获取年月select CONVERT(varchar(7), GETDATE(), 120)输出变为2017-03。

C语言:输入一个人的出生年,月,日,再输入当前年,月,日,计算此人的实际年...
答://获得当前的日期 int days0 = year*10000+(month-1)*100+day-1; int days1 = today->tm_year*10000+(today->tm_mon-1)*100+today->tm_mday-1; int age = days1-days0;//当日期或者月份不足的时候,会自动从上一级借位,因此计算出的年纪是可靠的,但是月份需要分析:需要...

excel如何输入出生年月日?
答:选择其中的“设置单元格格式”。2、在打开的设置对话框中点击“日期”选项,并选择类型为带有斜杠的日期格式。3、点击确定后再切换输入法为英文输入模式,在输入年份后按下“/”符号。4、再输入月份和“/”符号,最后输入天数,即可完成出生年月的输入了。

C语言中输入年月日,判断这一天是一年的第几天……
答:37for(i=0;i<moon-1;i++)38t1=t1+days[i];39t2=t1+day;40printf("%d年%d月%d日是这一年的第【%d】天\n---\n",year,moon,day,t2);41} 42 43/ 44return0;45}

c语言中如何输入年月日
答:就这么写的,没调试,你自己调一下好吧 include <stdio.h> void main(){ int year,month,date;scanf("%d-%d-%d",&year,&month,&date);printf("%d-%d-%d",year,month,date);if(year<0||year>3000)printf("Error!");if(month>12||month<1)printf("Error!");switch(month){ case 1...

编写C语言:从键盘输入某个日期(包括年、月、日),编写程序,计算并输出这...
答:a+=28;case 2:a+=31;case 1:a+=p->d;} return a;} void main(){struct date d,*pd;int i,a,b;pd=&d;printf("以yy.mm.dd的格式输入一个日期\n");scanf("%4d%c%2d%c%2d",&pd->y,&a,&pd->m,&b,&pd->d);i=fun(pd);printf("是该年的第%d天\n",i);} ...

c语言输入年份和天数,输出月份和日期,如何写啊,各为大侠帮帮忙吧,thank...
答:include<stdio.h> int leap(int a){ if(a%4==0&&a%100!=0||a%400==0)return 1;else return 0;} int numble(int year,int m,int d){ int sum=0,i,j,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};if(...