打印日期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;
}
相关推荐
txinyu的博客4 分钟前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
搞笑症患者18 分钟前
压缩感知(Compressed Sensing, CS)
算法·最小二乘法·压缩感知·正交匹配追踪omp·迭代阈值it算法
im_AMBER22 分钟前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法
予枫的编程笔记23 分钟前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
mjhcsp29 分钟前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
hui函数30 分钟前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip
快手技术40 分钟前
AAAI 2026|全面发力!快手斩获 3 篇 Oral,12 篇论文入选!
前端·后端·算法
颜酱41 分钟前
前端算法必备:滑动窗口从入门到很熟练(最长/最短/计数三大类型)
前端·后端·算法
做科研的周师兄43 分钟前
【MATLAB 实战】栅格数据 K-Means 聚类(分块处理版)—— 解决大数据内存溢出、运行卡顿问题
人工智能·算法·机器学习·matlab·kmeans·聚类
X在敲AI代码44 分钟前
leetcodeD3
数据结构·算法