(C++)设计一个程序能计算一个日期加上若干天后是什么日期and计算日期差值
输入第一行表示样例个数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计算日期差值相关推荐
- c语言计算个人所得税作业,写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言...
问题描述: 写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言 3.我国的个人所得税实行累进税率,计算办法是:用全月应纳税所得额分为几个级别,分别乘以累进税率,几个 ...
- 题目39:请帮助Larry写一个程序,通过过去12个月中每月的月末结余,计算平均结余。
题目转载:http://python.wzms.com/s/1/29 题目描述: Larry今年毕业并找到了一份工作.他赚很多钱,但似乎总是不够.Larry认为他需要控制他的投资以解决自己的财务问题. ...
- java随堂练习05,编写一个程序,为一个给定的年份找出其对应的中国生肖
/*** 编写一个程序,为一个给定的年份找出其对应的中国生肖.* 中国的生肖基于12年一个周期,每年用一个动物代表:* rat(鼠).ox(牛).tiger(虎).rabbit(兔).dragon(龙 ...
- Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数
Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...
- Java黑皮书课后题第8章:*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1
*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1 题目 题目描述 破题 代码 题目 题目描述 8.22(偶数个1)编写一个程序,产 ...
- Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和
*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...
- Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数
*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...
- C++ 一个程序获取另一个程序Edit控件的内容
转载地址:https://www.cnblogs.com/lujin49/p/4796502.html //一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HW ...
- C语言:编写一个程序,建立一个abc.txt文本文件,向其中写入“this is a test”,然后显示该字符串
/*编写一个程序,建立一个abc.txt文本文件,向其中写入"this is a test",然后显示该字符串*/ #include <stdio.h> #includ ...
最新文章
- md加密 16位 32位
- [SDOI2009]学校食堂(状态压缩)
- 并发调试和JDK8新特性
- 怎么把程序内部坐标转为屏幕坐标_全网最详细CNC加工中心程序代码大全!
- history 历史命令记录功能如何防坏人(高级)
- 2016012007+小学四则运算练习软件项目报告
- Scoped CSS规范草案
- 图解Python多修饰器时哪个先起作用
- 推荐staruml和最近一本不错的UML小册子
- 【python游戏编程之旅】第一篇---初识pygame
- Learning AV Foundation(二)AVAudioPlayer
- windows下管理员用户与标准用户切换过程中的坑
- 服务器网卡灯不亮——解决方法
- 通过FAI进行全自动安装
- 最全的熬粥方法Word计算机考试怎么做,煮粥方法大全(珍藏版)
- KEIL MDK中的RO、RW和ZI
- 数据、运营相关案例问答题(一)【牛客网:数据分析试题广场】
- 测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
- 李威克挑战N小黑,虚拟人真实自然天花板之争的背后
- C/OSⅡ内核的车载影音系统设计
热门文章
- [微信小程序]给data的对象的属性赋值
- iOS 富文本编辑工厂, 让书写更简便.
- iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))
- SHELL训练营--day5__shell脚本(1)
- iframe 自动适应高和宽问题 和 其他Frame操作技巧
- iOS-ARC_Xcode检测循环引用
- codevs——1220 数字三角形(棋盘DP)
- Social regularizations
- JAVA方法中的参数用final来修饰的效果
- 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效