打印日期c++
2024-01-09 16:57:08
给出年份 y和一年中的第 d天,算出第 d天是几月几号。
输入格式
输入包含多组测试数据。
每组数据占一行,包含两个整数 y 和 d。
输出格式
每组数据输出一行一个结果,格式为 yyyy-mm-dd。
数据范围
输入最多包含 100 组数据,
1≤y≤3000,
1≤d≤366,
数据保证合法。
输入样例:
2000 3
2000 31
2000 40
2000 60
2000 61
2001 60
输出样例:
2000-01-03
2000-01-31
2000-02-09
2000-02-29
2000-03-01
2001-03-01
#include<iostream>
using namespace std;
int mouth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int is_run(int y) //闰年
{
if((y%4==0&&y%100)||y%400==0)
return 1;
return 0;
}
int day(int y,int m) //每个月多少天
{
if(m==2) return mouth[m]+is_run(y);
return mouth[m];
}
int main()
{
int y,s;
while(cin>>y>>s)
{
int m=1,d=1;
s--;
while(s--)
{
if(++d>day(y,m)) //如果大于这个月的天数,月数加1,天数为0
{
d=1;
if(++m>12) //如果大于月数,年数加1
{
m=1;
y++;
}
}
}
printf("%04d-%02d-%02d\n",y,m,d);
}
return 0;
}
文章来源:https://blog.csdn.net/qq_46380990/article/details/135481293
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!