输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出m行,每行按yyyy-mm-dd的个数输出。

#include<cstdio>//判断是否是闰年
bool isLeap(int year){return (year%4==0&&year%100!=0)||year%400==0;
}//用二维数组存平年和闰年每个月的天数,[i][0]为平年,[i][1]为闰年
int monthDay[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 n,yy,mm,dd,inc;scanf("%d",&n);while(n--){scanf("%d%d%d%d",&yy,&mm,&dd,&inc);while(inc--){dd++;if(isLeap(yy)){if(dd==monthDay[mm][1]+1){dd=1;mm++;}}else{if(dd==monthDay[mm][0]+1){dd=1;mm++;}}if(mm==13){mm=1;yy++;} }printf("%d-%02d-%02d\n",yy,mm,dd);}return 0;
}

收获:
①让日期不断加一的新颖思路
②月份的二维数组
③判断是否到下一个月的方法dd==monthDay[mm][0]+1

和这个题一母同胞的还有计算日期差值(同一天算做1)
注意:输入的第一个日期未必早于第二个,需要进行判断,必要时交换两个日期

#include<cstdio>
#include<cstring>
#include<cmath>int daysInMonth[2][13] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};void swap(int* p1,int* p2){int temp = *p1;*p1 = *p2;*p2 = temp;
}int isLeap(int year){//如果是闰年,返回1 ,否则返回0 if((year%4 == 0 && year%100 != 0)||(year%400 == 0)){return 1;}else{return 0;}
}int main(){int st,nd;  scanf("%d%d",&st,&nd);if(st>nd){//如果第一个日期比第二个迟,则交换它俩 int* p = &st;int* q = &nd;swap(p,q);}
//  printf("%d %d",st,nd);int y1,m1,d1,y2,m2,d2;y1 = st/10000;m1 = st%10000/100;d1 = st%100;y2 = nd/10000;m2 = nd%10000/100;d2 = nd%100;int ans = 1;while(!((y1 == y2)&&(m1 == m2)&&(d1 == d2))){d1 ++;if(d1 == daysInMonth[isLeap(y1)][m1]){m1 ++;d1 = 1;}if(m1 == 13){y1 ++;m1 = 1;}ans ++;}printf("%d\n",ans);return 0;}

(C++)设计一个程序能计算一个日期加上若干天后是什么日期and计算日期差值相关推荐

  1. c语言计算个人所得税作业,写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言...

    问题描述: 写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言 3.我国的个人所得税实行累进税率,计算办法是:用全月应纳税所得额分为几个级别,分别乘以累进税率,几个 ...

  2. 题目39:请帮助Larry写一个程序,通过过去12个月中每月的月末结余,计算平均结余。

    题目转载:http://python.wzms.com/s/1/29 题目描述: Larry今年毕业并找到了一份工作.他赚很多钱,但似乎总是不够.Larry认为他需要控制他的投资以解决自己的财务问题. ...

  3. java随堂练习05,编写一个程序,为一个给定的年份找出其对应的中国生肖

    /*** 编写一个程序,为一个给定的年份找出其对应的中国生肖.* 中国的生肖基于12年一个周期,每年用一个动物代表:* rat(鼠).ox(牛).tiger(虎).rabbit(兔).dragon(龙 ...

  4. Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数

    Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...

  5. Java黑皮书课后题第8章:*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1

    *8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1 题目 题目描述 破题 代码 题目 题目描述 8.22(偶数个1)编写一个程序,产 ...

  6. Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和

    *8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...

  7. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  8. C++ 一个程序获取另一个程序Edit控件的内容

    转载地址:https://www.cnblogs.com/lujin49/p/4796502.html //一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HW ...

  9. C语言:编写一个程序,建立一个abc.txt文本文件,向其中写入“this is a test”,然后显示该字符串

    /*编写一个程序,建立一个abc.txt文本文件,向其中写入"this is a test",然后显示该字符串*/ #include <stdio.h> #includ ...

最新文章

  1. md加密 16位 32位
  2. [SDOI2009]学校食堂(状态压缩)
  3. 并发调试和JDK8新特性
  4. 怎么把程序内部坐标转为屏幕坐标_全网最详细CNC加工中心程序代码大全!
  5. history 历史命令记录功能如何防坏人(高级)
  6. 2016012007+小学四则运算练习软件项目报告
  7. Scoped CSS规范草案
  8. 图解Python多修饰器时哪个先起作用
  9. 推荐staruml和最近一本不错的UML小册子
  10. 【python游戏编程之旅】第一篇---初识pygame
  11. Learning AV Foundation(二)AVAudioPlayer
  12. windows下管理员用户与标准用户切换过程中的坑
  13. 服务器网卡灯不亮——解决方法
  14. 通过FAI进行全自动安装
  15. 最全的熬粥方法Word计算机考试怎么做,煮粥方法大全(珍藏版)
  16. KEIL MDK中的RO、RW和ZI
  17. 数据、运营相关案例问答题(一)【牛客网:数据分析试题广场】
  18. 测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
  19. 李威克挑战N小黑,虚拟人真实自然天花板之争的背后
  20. C/OSⅡ内核的车载影音系统设计

热门文章

  1. [微信小程序]给data的对象的属性赋值
  2. iOS 富文本编辑工厂, 让书写更简便.
  3. iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))
  4. SHELL训练营--day5__shell脚本(1)
  5. iframe 自动适应高和宽问题 和 其他Frame操作技巧
  6. iOS-ARC_Xcode检测循环引用
  7. codevs——1220 数字三角形(棋盘DP)
  8. Social regularizations
  9. JAVA方法中的参数用final来修饰的效果
  10. 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效