【C语言】世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

代码如下:

#include<stdio.h>
int main()
{
 //dayNum:每个月的天数
 int year,month,day,dayNum;
 int sign=0;
 printf("请输入月-日-年(例如:10-28-2019):");
 scanf("%d-%d-%d",&month,&day,&year);
 //判断是否闰年
 if((year%4==0&&year%100!=0)||year%400==0)
 {
  //闰年标记为1
  sign=1;
 }
 if(month>=1&&month<=12)
 { 
  //判断每个月的天数
  switch(month)
  {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
   dayNum=31;
   break;
  case 4:
  case 6:
  case 9:
  case 11:
   dayNum=30;
   break;
  case 2:
   if(sign==1)
    dayNum=29;
   else
    dayNum=28;
   break;
  default:
   break;
  }
  if(!(day>0&&day<=dayNum))
  {
   printf("日期格式错误!\n");
   return 2;
  }
 }
 else
 {
  printf("月份格式错误!\n");
  return 1;
 }
 //都没错则格式正确,转换格式
 printf("日期格式正确\n转换后的日期格式为:%d-%02d-%02d\n",year,month,day);
 return 0;
}