九度oj 题目1096:日期差值
- 题目描述:
-
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天
- 输入:
-
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
- 输出:
-
每组数据输出一行,即日期差值
- 样例输入:
-
20110412
20110422
- 样例输出:
-
11
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm> #define MAX 10
using namespace std; char date1c[MAX];
char date2c[MAX];
char tempc[MAX]; int date1[MAX];
int date2[MAX]; int year1,month1,day1;
int year2,month2,day2; int month[][] = {{,,,,,,,,,,,,},{,,,,,,,,,,,,}};
int dayCount[] = {,}; int isR(int year) {
if(((year % == ) && (year % != ))||(year % == )) {
return ;
}
return ;
}
int main(int argc, char const *argv[])
{
while(scanf("%s %s",date1c,date2c) != EOF) {
if(strcmp(date1c,date2c) > ) {
sscanf(date1c,"%s",tempc);
sscanf(date2c,"%s",date1c);
sscanf(tempc,"%s",date2c);
}
for(int i = ; i < ; i++) {
date1[i] = date1c[i] - '';
date2[i] = date2c[i] - '';
}
year1 = date1[]*+date1[]*+date1[]*+date1[];
month1 = date1[]* + date1[];
day1 = date1[]*+date1[];
//printf("%d %d %d\n",year1,month1,day1); year2 = date2[]*+date2[]*+date2[]*+date2[];
month2 = date2[]* + date2[];
day2 = date2[]*+date2[]; //printf("%d %d %d\n",year2,month2,day2); int yd1 = ,yd2 = ; for(int i = ; i < month1; i++) {
yd1 = yd1 + month[isR(year1)][i];
}
yd1 = yd1 + day1;
//printf("%d\n",yd1);
for(int i = year1; i < year2; i++) {
yd2 = yd2 + dayCount[isR(i)];
} for(int i = ; i < month2; i++) {
yd2 = yd2 + month[isR(year2)][i];
}
//printf("%d\n",yd2);
yd2 = yd2 + day2;
int ans = yd2 - yd1 + ;
printf("%d\n",ans);
}
return ;
}用到第一年的第一天的时间差表示二者的时间差,自我感觉月份天数的表示法有些巧妙
九度oj 题目1096:日期差值的更多相关文章
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- 九度oj题目&吉大考研11年机试题全解
九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码). http://ac.jobdu.com/problem.php?pid=11 ...
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 九度oj 题目1007:奥运排序问题
九度oj 题目1007:奥运排序问题 恢复 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ题目1105:字符串的反码
tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...
- 九度oj题目1009:二叉搜索树
题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...
- 九度oj题目1002:Grading
//不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...
- 九度OJ题目1003:A+B
while(cin>>str1>>str2)就行了,多简单,不得不吐槽,九度的OJ真奇葩 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号", ...
随机推荐
- Java编程基础-选择和循环语句
一.选择结构语句 选择结构:也被称为分支结构.选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码. Java语言提供了两种选择 ...
- KMP字符串模式匹配详解
KMP字符串模式匹配详解 http://www.cppblog.com/oosky/archive/2006/07/06/9486.html
- Oracle汇总
1.数据库事务并发会产生那些问题?有哪些隔离级别,分别能够避免什么错误,而无法避免什么错误? a.事务并发会导致三种问题:脏读.不可重复读.幻象读 脏读:读取了未提交的数据 不可重复读:前后读取同一行 ...
- C#调用CMD程序
最近写了两个小程序都要调用Windows自带的命令行程序,一个是调用Openfiles.exe查询正在编辑的共享文档,一个是调用DiskPart.exe查询硬盘状态.两种命令行程序调用有点不同,记录一 ...
- 生鲜o2o配送应用系统,包括Android源码+SSH带后台管理系统
前台功能划分 我的 登录 账户+密码 注册 订单管理 查看/删除(显示订单详情) 支付(提交订单) ...
- thinkphp 结合phpexcel实现excel导入
控制器文件: class ExcelAction extends Action { public function __construct() { import('ORG.Util.ExcelToAr ...
- 在Phonegap下实现oAuth认证
原文:http://www.kuqin.com/mobile/20120719/322873.html 前段时间做过两次关于Phonegap的现场交流会议分享.基本上把Phonegap的一些特性和大家 ...
- xampp中php手动升级
http://windows.php.net/download/ //要下载的 里面有dll文件 http://www.php.net/downloads.php VC9 x86 ...
- shell脚本,awk替换{}里面的内容
如何将oxo{axbxc}oxo{dxexf}oxo里面的{}里面的x 替换为; 用awk实现 [root@localhost 09-30]# echo 'oxo{axbxc}oxo{dxexf}ox ...
- base64类
public class Base64{ /** * how we separate lines, e.g. \n, \r\n, \r etc. */ private String lineSepar ...