输出后天日期
run(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return 1;
else
return 0;//是闰年的返回1,平年返回0
}
#include <stdio.h>
int main()
{
int year,month,day;
scanf("%d-%d-%d",&year,&month,&day);
int ret=run(year);
if(month==1||3||5||7||8||10)
{
if(day<=29&&day>=1)
{
printf("%d.%.2d.%.2d",year,month,day+2);
}
if(day==30)
printf("%d.%.2d.01",year,month+1);
if(day==31)
printf("%d.%.2d.02",year,month+1);
}
if(month==4||6||9||11)
{
if(day<=28&&day>=1)
printf("%d.%.2d.%.2d",year,month,day+2);
if(day==29)
printf("%d.&.2d.01",year,month+1);
if(day==30)
printf("%d.%.2d.02",year,month+1);
}
if(month==2)
{
if(ret==1) //闰年
{
if(day>=1&&day<=27)
printf("%d.%.2d.%.2d",year,month,day+2);
if(day==28)
printf("%d.03.01",year);
if(day==29)
printf("%d.03.02",year);
}
if(ret==0) //平年
{
if(day<=26)
printf("%d.%.2d.%.2d",year,month,day+2);
if(day==27)
printf("%d.03.01",year);
if(day==28)
printf("%d.03.02",year);
}
}
if(month==12)
{
if(day<=29&&day>=1)
printf("%d.%.2d.%.2d",year,month,day+2);
else if(day==30)
printf("%d.01.01",year+1);
else if(day==31)
printf("%d.01.02",year+1);
}
return 0;
}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
pta上日期哪里写错了吗照不出来哪里出错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
【以下回答由 GPT 生成】
首先,你可以使用C语言标准库中的time.h头文件和其相关函数来处理日期和时间。可以使用time函数获取当前日期和时间,然后通过计算得出明天的日期。
以下是解决该问题的代码示例:
#include <stdio.h> #include <time.h> // 函数原型 void getTomorrowDate(); int main() { // 调用函数获取明天的日期 getTomorrowDate(); return 0; } void getTomorrowDate() { time_t t = time(NULL); // 获取当前时间的时间戳 struct tm tm = *localtime(&t); // 时间戳转换为当地时间 // 获取当前日期 int day = tm.tm_mday; // 当月的第几天 int month = tm.tm_mon + 1; // 月份,需要+1 int year = tm.tm_year + 1900; // 年份,需要+1900 // 判断是否是闰年 int isLeapYear = 0; // 默认不是闰年 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { isLeapYear = 1; // 是闰年 } // 判断月份天数 int daysInMonth; switch (month) { case 2: if (isLeapYear) { daysInMonth = 29; } else { daysInMonth = 28; } break; case 4: case 6: case 9: case 11: daysInMonth = 30; break; default: daysInMonth = 31; break; } // 计算明天的日期 day++; if (day > daysInMonth) { day = 1; month++; if (month > 12) { month = 1; year++; } } // 输出明天的日期 printf("明天的日期是:%d-%02d-%02d\n", year, month, day); }
通过以上代码,我们首先获取当前日期和时间的时间戳,然后将时间戳转换为当地时间,得到当前日期的年、月、日。接下来,我们根据闰年的判断和不同月份的判断,计算出明天的日期。最后,将年、月、日通过printf函数输出。
【相关推荐】
- 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7576472
- 你也可以参考下这篇文章:pta上目前所遇到的一些坑
- 除此之外, 这篇博客: PTA 计算平均成绩中的 输出样例: 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 Qt4代码实现下面的界面
- ¥15 prism提示我reinstall prism 如何解决
- ¥15 asp.core 权限控制怎么做,需要控制到每个方法
- ¥20 while循环中OLED显示中断中的数据不正确
- ¥15 这个视频里的stm32f4代码是怎么写的
- ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
- ¥15 请教SGeMs软件的使用
- ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
- ¥50 深度学习运行代码直接中断
- ¥20 需要完整的共散射点成像代码