#include<iostream>
#include<string>
#include<cstring>
using namespace std; class Date
{
private:
int year;
int month;
int day;
public:
void get()
{
int a,b,c;
cin>>a;
getchar();
cin>>b;
getchar();
cin>>c;
year=a;
month=b;
day=c;
return;
}
friend int days(Date a,Date b);
}; int days(Date a,Date b)
{
int day1=;
Date temp;
if((a.year<b.year)||((a.year==b.year)&&(a.month<b.month))||((a.year==b.year)&&(a.month==b.month)&&(a.day<b.day)))
{
temp=a;
a=b;
b=temp;//保证a比b日期靠后
}
if(a.year!=b.year)
{
day1+=(a.year-b.year-)*;//不考虑闰年和不完整年的整年天数
day1+=((((a.year-)/) - ((a.year-)/) + ((a.year-)/))-(((b.year-)/) - ((b.year-)/) + ((b.year-)/)));//期间闰年天数
for(int i=b.month;i<=;i++)
{
switch(i)
{
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
}
}
day1-=b.day;
for(int i=a.month-;i>=;i--)
{
switch(i)
{
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
}
}
day1+=a.day;
if(((b.year%==&&b.year%!=)||(b.year%==))&&(b.month>))
day1-=;
if(((a.year%==&&a.year%!=)||(a.year%==))&&(a.month>))
day1+=;
}
else
{
for(int i=b.month;i<a.month;i++)
{
switch(i)
{
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
case :
{
day1+=;
break;
}
}
}
day1+=a.day;
day1-=b.day;
if(b.month==&&b.day==)
day1++;
if(((a.year%==&&a.year%!=)||(a.year%==))&&(b.month<=&&b.day!=&&a.month>))
{
day1++;
}
}
return day1;
} int main()
{
Date y1,y2;
y1.get();
y2.get();
cout<<days(y1,y2);
return ;
}

C++练习 | 计算两日期之间天数差的更多相关文章

  1. java:通过Calendar类正确计算两日期之间的间隔

    在开发Android应用时偶然需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences .xml.sqlit ...

  2. iOS 时间戳和时间互换,计算两日期相隔天数

    /*  *获取当前系统时间的时间戳  */ +(NSInteger)getNowTimestamp;   /**  * 获取当前时间  */ + (NSString *)getNowTimeTampF ...

  3. MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

    MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() ...

  4. js计算两个日期的天数差值

    js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...

  5. java中计算两个日期之间天数的程序设计。

    //用java编写出一个以下方法计算两个日期之间天数的程序设计. import java.util.regex.Matcher; import java.util.regex.Pattern; pub ...

  6. 使用LocalDateTime计算两个时间的差

    LocalDateTime now = LocalDateTime.now();System.out.println("计算两个时间的差:");LocalDateTime end ...

  7. C 语言实例 - 计算两个时间段的差值

    C 语言实例 - 计算两个时间段的差值 C 语言实例 C 语言实例 计算两个时间段的差值. 实例 #include <stdio.h> struct TIME { int seconds; ...

  8. oracle计算两个时间的差值(XX天XX时XX分XX秒)

    在工作中需要计算两个时间的差值,结束时间 - 开始时间,又不想在js里写function,也不想在java里去计算,干脆就在数据库做了一个函数来计算两个时间的差值.格式为XX天XX时XX分XX秒: 上 ...

  9. JS实现——计算两日期之差

    在网上找了个js实现的,根据相差天数计算日期和根据两个日期计算相差多少天的示例和代码: 根据相差天数计算日期: 距离: 年 月 日 相差: 天 (输入负数则往前计算) 日期是:   根据日期计算相差天 ...

随机推荐

  1. DNS隧道实战&&cobaltstrike利用dns隧道

    前言 使用 dns 隧道进行 tcp 通信. 正文 首先配置域名 配置一个 A 记录指向我们的 vps, 然后配置几个 ns 记录,指向刚刚设置的 A 记录 然后在服务端安装 wget https:/ ...

  2. 软工读书笔记 week 8 —— 《疯狂的程序员》

    这次接着上一次的进度继续阅读,并将其中感悟较深的几点记录如下.      程序员是一个幕后工作者 书中绝影给医院写软件,而医生(用户)只是评价这个软件好不好用,而不会去评价写这个软件的程序员优不优秀. ...

  3. 转载:java基础之单例

    转载:https://blog.csdn.net/goodlixueyong/article/details/51935526 https://www.cnblogs.com/cielosun/p/6 ...

  4. mvc5中重命名项目的名称后,出现"找到多个与名为“Home”的控制器匹配的类型"

    1.已把项目中所有的Webapplication1改为了MvcMovie,但是运行后,还是报错: 找到多个与名为“Home”的控制器匹配的类型 2.已重新生成解决方安,还是不行. 解决方法:把bin文 ...

  5. 自己搭建anki服务器

    目录 centos端 电脑客户端 安卓端 centos端 # 安装服务 yum -y install python-setuptools easy_install Ankiserver mkdir - ...

  6. jsp 页面间传递参数

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  7. linux在当前目录下根据文件名查找文件

    grep -rl "python" ./ 查找./目录下文件名中包含python的文件 find | grep luoluo将当前目录下(包括子目录)的文件名中含有luoluo的文 ...

  8. Redis学习---Redis操作之其他操作

    全局有效的其他操作 save 强制将内存/缓存中的key刷到硬盘上 ------------------------------------------------------------------ ...

  9. Linux chkconfig命令详解

    chkconfig命令检查.设置系统的各种服务.这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务.谨记chkconfig不是 ...

  10. Matlab 之meshgrid, interp, griddata 用法和实例(转)

    http://blog.sina.com.cn/s/blog_67f37e760101bu4e.html 实例结果http://wenku.baidu.com/link?url=SiGsFZIxuS1 ...