打印日期c++

给出年份 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

cpp 复制代码
#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;
}
相关推荐
智者知已应修善业2 分钟前
【字符串提取3个整数求和】2024-2-11
c语言·c++·经验分享·笔记·算法
唯唯qwe-7 分钟前
Day21:贪心算法 | 加油站,分发糖果
算法·贪心算法
博语小屋14 分钟前
Linux 地址转换函数详解
linux·运维·服务器·c++
特立独行的猫a18 分钟前
C++开发中的构建工具:现代CMake实战速成
开发语言·c++·cmake·入门教程
点云侠33 分钟前
粒子群优化算法求解三维变换矩阵的数学推导
线性代数·算法·矩阵
听*雨声38 分钟前
09_软考_数据结构
数据结构
dragoooon3442 分钟前
[hot100 NO.31~36]
数据结构·算法·排序算法
白兰地空瓶42 分钟前
JavaScript 列表转树(List to Tree)详解:前端面试中如何从递归 O(n²) 优化到一次遍历 O(n)
javascript·算法·面试
思成不止于此1 小时前
C++ STL中map与set的底层实现原理深度解析
开发语言·c++·set·map·红黑树·底层实现
艾醒1 小时前
大模型原理剖析——从技术特性、底层架构到落地逻辑的全维度解析
算法