#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. PAT乙级01

    1001 害死人不偿命的(3n+1)猜想 (15)(15 分) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反 ...

  2. leading--Oracle hint

    SQL>  explain plan for select rowid rid from  2   scott.emp e where e.empno >100 and e.empno & ...

  3. Webservice和EJB

    WebService Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯 ...

  4. C#中的三种timer

    转 https://blog.csdn.net/hoiven/article/details/51362582 如果你需要使用规律的时间间隔重复执行一些方法,最简单的方式是使用定时器(timer). ...

  5. 关于easyUI一些标签的使用

    ①table: 1.class="easyui-datagrid":指定为easyUI的表格布局 2.pagination="true":带分页的表格 3.ro ...

  6. 编写带有点击特效的UIButton

    编写带有点击特效的UIButton 效果: 源码: // // ViewController.m // Button // // Created by XianMingYou on 15/1/18. ...

  7. UNIX高级环境编程(1)File I/O

    引言: Unix系统中主要的文件操作包括: open read write lseek close unbuffered IO和standard I/O相对应,后面的章节我们会讨论这两者的区别. 在讨 ...

  8. 铁乐学python_day10_作业

    1.继续整理函数相关知识点,写博客. 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def sum_n(*args): sum = 0 for i in args: sum += i r ...

  9. zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)

    动批量检查agent开放的端口 注:此方法给监控磁盘IO(即十二)篇过程一样: 注释:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控:  如果服务器会随机出现端口且每次启动程 ...

  10. pathlib

    导入Path类 from pathlib import Path 创建Path对象 p = Path('C:\Windows\System32') # 用C:\Windows\System32创建Pa ...