编一个简单的日期计算器 输入年、月、日,输出该日期的前一天和后一天

###http://my.csdn.net/hhhhhhhhhhkkkkkkkkkk的回复。如果该本人看到请理解,我只是想保存供大家好搜索。代码权是链接中的创作人所有。
#include"stdio.h"
void  main()
{
     int  year, month, day;
     printf ( "请输入一个年、月、日:\n" );
     scanf_s( "%d,%d,%d" , &year, &month, &day);
     if  (!((month >= 1) && (month <= 12)))
     {
         printf ( "输入月错误" );  goto  _exit;
     }
 
     int  monDay[12],preYear,preMon,preDay,afterYear,afterMon,afterDay;
     bool  dYear =  false ;
     monDay[0] = monDay[2] = monDay[4] = monDay[6] = monDay[7] = monDay[9] = monDay[11]=31;
     monDay[3] = monDay[5] = monDay[8] = monDay[10] = 30;
     monDay[1] = 28;
     if  (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
     {
         dYear =  true ; monDay[2] = 29;
     }
     if  (!((day >= 1) && (day <= monDay[month-1])))
     {
         printf ( "输入日错误" );  goto  _exit;
     }
     //计算前一天:
     preDay = day - 1;
     preMon = month;
     preYear = year;
     if  (preDay < 1)
     {
         preMon--;
         if  (preMon < 1)
         {
             preMon = 12;
             preYear--;
         }
         preDay = monDay[preMon-1];
     }
     char *beforeStr =  "" ;
     if  (preYear < 0){ beforeStr =  "公元前" ; preYear = -preYear; }
     printf ( "前一天:%s%d年%d月%d日\n" , beforeStr,preYear, preMon, preDay);
     //计算后一天:
     afterDay = day + 1;
     afterMon = month;
     afterYear = year;
     if  (afterDay > monDay[month-1])
     {
         afterDay = 1; afterMon++;
     }
     if  (afterMon > 12)
     {
         afterMon = 1;
         afterYear++;
     }
     beforeStr =  "" ;
     if  (afterYear<0){ beforeStr =  "公元前" ; afterYear = -afterYear; }
     printf ( "后一天:%s%d年%d月%d日\n" , beforeStr, afterYear, afterMon, afterDay);
_exit:
     getchar ();
     getchar ();
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值