codeforces 153d(日期转换)特殊题目
date change
You are given a date in “DD.MM.YYYY” (“day.month.year”) format and a number of days shift you have to add to this date. Output the resulting date.
Input
The first line of input contains the date in “DD.MM.YYYY” format: two digits for day (with leading zero if needed), dot, two digits for month (with leading zero if needed), dot, four digits for year. The notation is guaranteed to give a valid date between 1980 and 2020, inclusive.
The second line contains an integer shift ( - 1000 ≤ shift ≤ 1000).
Output
Output a date equal to the given one + shift days, in the same format “DD.MM.YYYY”.
Examples
Input
10.02.2012
12
Output
22.02.2012
Input
01.02.2010
-40
Output
23.12.2009
Input
01.01.2000
365
Output
31.12.2000
Input
13.08.1990
-609
Output
12.12.1988
Note
When manipulating the dates, take into account leap years; don’t care about time zones/daylight saving time.
题意好理解,给你一个时期,然后给你一个数,在这个日期上加上或者减去一个数,求最后的日期是多少。问题没有什么技术含量,但是有很多要考虑的。闰年二月与平年二月,在减去某个数时相应的月份与年份的变化。题目不难,细节处理好就可以了。(一天就写了一道题,阿西吧。在床上躺了一天了)。
代码给上:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;int d,m,y;
int nd;
char a,b;
int md[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};//把除了二月之外的每个月的天数保存到数组里。int main()
{while(scanf("%2d%c%2d%c%4d",&d,&a,&m,&b,&y)!=EOF){int x;scanf("%d",&nd);if(nd>=0)//增加某个数字{while(nd){if(m==02)//二月应该特判啦{if(y%4) x=28;else x=29;}else x=md[m];d++;if(d>x) {d=1;m++;if(m>12) {y++;m=1;}}nd--;}printf("%.2d%c%.2d%c%.4d\n",d,a,m,b,y);}else{while(nd<0)//减去一个数字{d--;if(d<1)//d=0的时候表示应该减一个月份了。{if(m==1) //如果当前月份为一月的话,减完之后应该就是去年的十二月了{m=12;y--;x=md[m];}else if(m==3)//如果是三月的话,减完之后是二月,特判,嘤嘤嘤。{if((y%4)) x=28;else x=29;m=2;}else//其余的就直接写就可以了啊。{m--;x=md[m];}d=x;}nd++;}printf("%.2d%c%.2d%c%.4d\n",d,a,m,b,y);}}return 0;
}
努力加油a啊,(o)/~
codeforces 153d(日期转换)特殊题目相关推荐
- 时间与日期处理模块 题目解题报告
01:细菌繁殖 描述 一种细菌的繁殖速度是每天成倍增长.例如:第一天有10个,第二天就变成20个,第三天变成40个,第四天变成80个,--.现在给出第一天的日期和细菌数目,要你写程序求出到某一天的时候 ...
- mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全
Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01 ...
- 将中文日期转换成自己想要的格式如:2018年09月29日转换成2018-09-29
def date_conversion(self,date): '''将中文日期转换成自己想要的格式如:2018年09月29日转换成2018-09-29''' c = list(re.findall( ...
- atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 可以选择的模式: 表格模式,责任链模式 1 3 ...
- oracle时间戳-日期转换
为什么80%的码农都做不了架构师?>>> 日期转换毫秒 Sql代码 SELECT TO_NUMBER(TO_DATE('2005-03-29 12:30:45', 'YYYY- ...
- sql server datetime格式_为什么你SQL Server中SQL日期转换出错了呢?
开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的.但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(隐藏的炸弹而已,只是等触发条件而已 ...
- oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型
展开全部 oracle把数值型日期转换bai成日期字符du型的操作方法和详细步骤zhi如下: 1.首先dao,将字符串类型版转换为权数字类型. 此方法使用to_number()直接进行转换. 具体语法 ...
- Hive 数仓中常见的日期转换操作
(1)Hive 数仓中一些常用的dt与日期的转换操作 下面总结了自己工作中经常用到的一些日期转换,这类日期转换经常用于报表的时间粒度和统计周期的控制中 日期变换: (1)dt转日期 to_date(f ...
- python各种类型日期转换大全
最近写python做各种日期转换比较多,顺便总结一下,先上张图: 1 # 根据字符串类型转日期 返回值类型<class 'time.struct_time'> 2 st_time = ti ...
- C#中把货币、日期转换成中文大写
日期转换代码如下: /**//// <summary> /// 日期转换为中文大写 /// </summary> public class UpperConvert { ...
最新文章
- python期末考试及答案广东卷_python数据分析答案试题题目及答案,期末考试题库,章节测验答案...
- 三层架构,Struts2,SpringMVC实现原理图
- C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
- C语言取字节的第n二进制,学C语言的看过来,最完整进制转换、整数和小数内存存储模型...
- 算法设计与分析 0-1背包问题 动态规划解法【超详细】
- 解题报告——Python编程:从入门到实践_动手试一试_参考答案(第四章)
- C++ 字符串编程训练2
- 求数字序列中的第n位对应的数字
- NS2相关学习——完成一个新协议(3)
- python24点4张扑克_Python实现扑克24点小游戏 ,从此我就没输过
- Docker知识体系--从容器基础-微服务-DevOps-实战演习-Kubernetes简介-KBS基础架构-KBS核心组件-KBS集群
- ex.php,Exphp代码走读
- 大数据可视化类型有哪些
- 品鉴贝叶斯公式里的大道理
- KitKat带来短信应用的改变
- 专利局文件如何删除后面的注意事项
- 解决npm install 报错,亲测有效
- 自动阅读软件脚本应用开发app头条新闻引流阅读
- @click.prevent.native作用
- 【Shell】Sed 删除、替换、增加字符串