代码练习系列:问题 C 打印日期
2017-11-08 11:14
309 查看
题目描述
给出年分m和一年中的第n天,算出第n天是几月几号。
输入
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出
可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
样例输入
2013 60
2012 300
2011 350
2000 211
样例输出
2013-03-01
2012-10-26
2011-12-16
2000-07-29
给出年分m和一年中的第n天,算出第n天是几月几号。
输入
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出
可能有多组测试数据,对于每组数据,按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
样例输入
2013 60
2012 300
2011 350
2000 211
样例输出
2013-03-01
2012-10-26
2011-12-16
2000-07-29
#include <stdio.h> #include <string.h> #define isleap(x) (x % 100 != 0 && x % 4 == 0)|| x % 400 == 0 ? 1 : 0 int dayofMonth[13][2] = {{0,0},{31,31},{28,29},{31,31},{30,30}, {31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}}; int main() { int day,year; int cnt = 365; while(scanf("%d %d",&year,&day) != EOF){ int num = 0,month = 1; if(isleap(year)){ cnt = 366; } if(day > cnt){ day = 1; year++; } for(int i = day;i > 0;i--){ num++; if(num == dayofMonth[month][isleap(year)] + 1){ month++; num = 1; } } printf("%04d-%02d-%02d\n",year,month,num); } return 0; }
相关文章推荐
- 代码练习系列:问题 E 日期累加
- 代码练习系列:问题 A 日期差值
- 代码练习系列:问题 H 部分A+B (15)
- 代码练习系列:问题 A 统计同成绩学生人数
- 代码练习系列:问题 A 字符串连接
- 代码练习系列:问题 E 学生查询
- 代码练习系列:问题 C 等腰梯形
- 代码练习系列:问题 F A+B和C (15)
- 代码练习系列:问题 G 数字分类 (20)
- 代码练习系列:问题 B Hello World for U
- 代码练习系列:问题 A 又一版 A+B
- 代码练习系列:问题 B Day of Week
- 代码练习系列:问题 D 八进制
- 代码练习系列:问题 C 进制转换【转载】
- 代码练习系列:问题 A 输出梯形
- 代码练习系列:问题 B 数制转换
- java代码练习======每隔5行打印数字
- JS代码获取当前日期时支持IE,不兼容FF和chrome,解决这个问题,我们需要把获取时间的getYear()函数换成getFullYear()
- 算法题练习系列之(二十): 打印沙漏
- MyBatis代码实例系列-09:初步整合Spring + Spring MVC框架之后,如何打印MyBatis的SQL语句