博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有两个日期,求两个日期之间的天数
阅读量:3938 次
发布时间:2019-05-23

本文共 1987 字,大约阅读时间需要 6 分钟。

题目描述

有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天

输入描述:
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD

输出描述:

每组数据输出一行,即日期差值

示例1

输入

20110412

20110422

输出

11

代码

#include 
#include
#include
#include
using namespace std;int datas[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}};int isLeapYear(int year){ return (year%4==0&&year%100!=0)||year%400==0;}int numberOfYear(int year){ if(isLeapYear(year)) return 366; else return 365;}// 思路就是 年计算相对值,日期计算本年的值,然后多的年日期-少的年日期;+年的日子;int main(){ string time1; string time2; int year,month,day,year2,month2,day2; while(getline(cin,time1)&&getline(cin,time2)){ int num=1; //更好的读入方法: int flag = time1.compare(time2); year=stoi(time1.substr(0,4)); year2=stoi(time2.substr(0,4)); month=stoi(time1.substr(4,2)); month2=stoi(time2.substr(4,2)); day=stoi(time1.substr(6,2)); day2=stoi(time2.substr(6,2)); int numOfYear=abs(year-year2); // 函数化处理: int num1,num2; num1=num2=0; for(int i=0;i
0){// first is biger while(numOfYear>0){ num+=numberOfYear(year); year--; numOfYear--; } num+=(num1-num2); }else{ while(numOfYear>0){ num+=numberOfYear(year); year++; numOfYear--; } num+=(num2-num1); } printf("%d\n",num); } return 0;}

优秀答案:

#include
#define leap(x) (x%400==0||(x%4==0&&x%100!=0)?1:0)#define Abs(x) ((x)>0?(x):-(x))typedef struct date{ int y, m, d;}Date;const int yd[2][13]={
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; int days(Date x){ int sum=0, i; int y=x.y, m=x.m, d=x.d; for(i=0; i

转载地址:http://fnywi.baihongyu.com/

你可能感兴趣的文章
利用本地centos镜像升级centOS
查看>>
FreeBSD常用操作
查看>>
VC及esxi升级的必要性和步骤
查看>>
hp DL338服务器修改ilo管理地址
查看>>
vmware convert P2V 错误二三事
查看>>
让kali2020中的zsh有补完功能
查看>>
python解开压缩文件6位纯数字密码
查看>>
5620系列密码清除
查看>>
vncsever-centos&debian
查看>>
华为snmp模板
查看>>
华为wlan模板
查看>>
kvm&xen挂载镜像文件
查看>>
华为路由器配置NAT使内网用户通过外网IP地址方式访问内网服务器示例
查看>>
virt命令
查看>>
15个保障服务器安全的方法:
查看>>
在VMware Workstation 中部署VCSA6.5
查看>>
openstack&ceph
查看>>
ME60 双机热备 奇偶mac负载分担
查看>>
oracle11G安装en
查看>>
关于丢失或者损坏etc/fstab文件后
查看>>