(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;}
相关文章:

【转载】解决Apache2+PHP上传文件大小限制的问题
原文出处:http://evol1216.blog.163.com/blog/static/13019958020106783623528/ 在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下: 1、php.ini:uploa…

第36章 网络管理
第36章 网络管理 监听 11g的话首先写配置文件vi /u01/grid/11g/network/admin/listener.ora打开后选取下面的两个部分修改就好了 模板所在地vi /u01/11g/network/admin/samples/listener.ora SID_LIST_LISTENER (SID_LIST (SID_DESC (GLOBAL_DNAMEwyzc11g) (SID_NAMEwyzc11g)…

(C++)CSP202006-2 稀疏向量 two pointers
#include<cstdio>const int M 500000;//a,b<5*10^5 int u[M1][2];//第一维是index,第二维是value int v[M1][2];int main(){//1.读入n,a,b//2.对数组进行遍历,如果第一位相等,将第二维相乘 int n,a,b,i;long long ans0;scanf("%d%d%d&qu…

基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari...
一、集群软硬件环境准备: 操作系统: centos 7 x86_64.1804 Ambari版本:2.7.0 HDP版本:3.0.0 HAWQ版本:2.3.05台PC作为工作站: ep-bd01ep-bd02ep-bd03ep-bd04ep-bd05其中ep-bd01作为主节点,用于…

PDF编辑工具——PDF Desktop Converter 4 Professional
管理和操作PDF的工具。PDF Desktop Converter 4 Professional可以生成,转换,提取,组合,分割合并PDF。新增加的OCR功能可以将扫描后的文件转变成可以检索和编辑的PDF。以上这些功能只需要一个软件就可以全部实现。软件特点1. 快速&…

史上世界上最惨烈的几次股灾!
史上世界上最惨烈的几次股灾!●最惨烈的几次股灾 1美国股灾 1.1 1929年大股灾 1929年10月24日,星 期四。灾难的发生是毫无征兆的,开盘时,并没有出现什么值得注意的迹象,而且有一段时间股指还非常坚挺,但交易…

(C++) CSP 201803-1 跳一跳
#include<cstdio> const int M 30; int a[M1][2];//第一维用于读入,第二维用于记录上一局得分 int main(){int temp,index0,ans0;scanf("%d",&temp);while(temp!0){a[index][0]temp;if(a[index][0]1){ans1;}else{if(a[index-1][0]2){a[index][…

C#对象数组排序方法
一个排序的类,用了几种方式实现的。 usingSystem; namespaceDataStruct { publicclassSorter { ///<summary>///冒泡排序法1 ///</summary>/*(1)对于数组list中的1至n个数据,先将第1个和第2个数据进行比…

Asp.net MVC 3 防止 Cross-Site Request Forgery (CSRF)原理及扩展 安全 注入
原理:http://blog.csdn.net/cpytiger/article/details/8781457 原文地址:http://www.cnblogs.com/wintersun/archive/2011/12/09/2282675.html Cross-Site Request Forgery (CSRF) 是我们Web站点中常见的安全隐患。 下面我们在Asp.net MVC3 来演示一下。…

Windows下安装Redis服务
2019独角兽企业重金招聘Python工程师标准>>> Redis是有名的NoSql数据库,一般Linux都会默认支持。但在Windows环境中,可能需要手动安装设置才能有效使用。这里就简单介绍一下Windows下Redis服务的安装方法,希望能够帮到你。 1、要安…

(C++)1022 D进制的A+B 除基取余法将10进制数换成给定进制数
#include<cstdio> //除基取余法 const int M 30;int main(){long long a,b,c;int D,ans[M2];scanf("%lld%lld%d",&a,&b,&D);cab;int num0;do{ans[num]c%D;c c/D;}while(c!0);for(int inum-1;i>0;i--){printf("%d",ans[i]);}return…

Linux zip-tar.gz 压缩解压
tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归zip [参数] [打包后的文件名]…

Spring(ApplicationContextBeanFactory)
BeanFactory 才是 Spring 容器中的顶层接口。ApplicationContext 是它的子接口。 BeanFactory 和 ApplicationContext 的区别:创建对象的时间点不一样。 BeanFactory接口 spring的原始接口,针对原始接口的实现类功能较为单一.BeanFactory接口实现类的容器,特点是每次…

spoolsv.exe占CPU100% 的解决方法
spoolsv.exe占CPU100% 的解决方法spoolsv.exe是打印缓冲,没有打印机就关掉,有的话在打印时会占用很大内存。因为要打印的文件要转化格式。禁止Print spooler服务,如果用打印机,此方法不可行。 解决办法如下:1、在服…

(C++)1037 在霍格沃茨找零钱的两种解法
解法一 #include<cstdio> //十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可 //1 G 17 S , 1 S 29 Kint main(){int g1,s1,k1,g2,s2,k2,g3,s3,k3;scanf("%d.%d.%d",&g2,&s2,&k2);//定价 scanf("%d.%d.%…

开发人员角色分析
开发人员角色分析: 开发人员Developers 主要包含以下角色: n 软件架构师Software Architect n 设计员Designer n 用户界面设计员User-Interface Designer n 数据库设计员 Database Designer n 实施员Implementer n …

php empty()和isset()的区别
在使用 php 编写页面程序时,我经常使用变量处理函数判断 php 页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问题不再。 顾名思义,empty…

jmap 内存情况
2019独角兽企业重金招聘Python工程师标准>>> -dump dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名 [rootlocalhost ~]# jmap -dump:live,formatb,filedump.hprof 187784 Dumping heap to /home/yxgly/dump.hprof ... Heap dump …

(C++)1021 个位数统计
#include<cstdio> #include<cstring>const int M 1000;int main(){char str[M1];int count[10]{0};//全部初始化为0 scanf("%s",str);int len strlen(str);int i;for(i0;i<len;i){count[str[i]-0];}for(i0;i<10;i){if(count[i]>0){printf(&qu…

TOJ--3456--数学题
这题 做出来真的好爽啊... it is cool although it is easy 虽然 已经是大概1 2点的事了 我拖到现在才写是因为------lol 终于赢一把了 --- 先贴下题目: touch me 嗯 我一开始 用的是 3重for 我以为32767的数据量 是很小的.... 结果 TLE。。 OK 那么 我们只能换…

firewalled centos7
zone绑定网卡 firewall-cmd --zoneinternal --add-interfaceens192 --permanent firewall-cmd --permanent --zoneinternal --add-rich-rule"rule family"ipv4" source address"192.168.10.0/24" accept" [rootbyos000 system]# firewall-cmd -…

为Delphi程序添加事件和事件处理器
在Delphi中,事件实际上是专门化的属性,它是一个过程(procedure)的指针。要添加事件,首先应在所定义的类中说明一个用来指向事件过 程的指针,该指针的作用是当事件一旦发生,就通过这个指针执行所…

(C++)1031 查验身份证 3难点+3注意点
#include<cstdio> #include<cstring> //难点1:检查前17位是否全为数字 //解决之道1:本来就不是整型数字,是字符数字,判断是否在0和9之间即可 //难点2:遇到一个X后,如果不想处理sum了该怎么办 /…

Perl时间处理函数
官方网址:http://search.cpan.org/~stbey/Date-Calc-6.3/lib/Date/Calc.pod#___top use Date::Calc qw(Days_in_YearDays_in_MonthWeeks_in_Yearleap_yearcheck_datecheck_timecheck_business_dateDay_of_YearDate_to_DaysDay_of_WeekWeek_NumberWeek_of_YearMonda…

Linux环境搭建 | 手把手教你安装Linux虚拟机
2019独角兽企业重金招聘Python工程师标准>>> 前言 作为一名Linux工程师,不管是运维、应用、驱动方向,在工作中肯定会需要Linux环境。想要获得Linux环境,一个办法就是将电脑系统直接换成Linux系统,但我们平常用惯了Wind…

企业的覆灭,我监视你的Exchange邮件!
现在很多企业都搭建ExchangeServer平台,一个用户包括Domain admins都是不允许查阅其他用户的邮件信息的!殊不知作为Domain Admins权限用户可以经过精心的设置,可以达到浏览到其他用户邮件信息! 转载于:https://www.cnblogs.com/al…

(C++)1002 写出这个数
#include<cstdio> #include<cstring>const int M 100; //用字符数组装输入 //定义变量,输出字符数组的长度 //对字符数组遍历求和 //对结果逐位输出汉语拼音 void hanzi(int i){switch(i){case 0:printf("ling");break;case 1:printf("…

IO复用之epoll系列
epoll是什么? epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它…
MVP Summit 2008 照片纪实(二)- 旧金山,Google总部和Stanford大学
坐在洛杉矶机场里,终于为这次MVP峰会的美国之行画上了句号。从旧金山到拉斯维加斯,从拉斯维加斯到大峡谷,最后从大峡谷返回洛杉矶,3天之中总共驾驶历程超过1600英里(据说可以赶上出租车司机了)。3天之中经历…

(C++)1025 PAT Ranking
#include<cstdio> #include<algorithm> #include<cstring>using namespace std;const int M 100*300;struct testee{//考生 char reg_num[14];//准考证号 int score;//分数 int final_rank;//最终排名 int loc_no;//考场号 int local_rank;//考场内排名 }te…