C++练习 | 计算两日期之间天数差

#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++练习 | 计算两日期之间天数差的更多相关文章
- java:通过Calendar类正确计算两日期之间的间隔
在开发Android应用时偶然需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences .xml.sqlit ...
- iOS 时间戳和时间互换,计算两日期相隔天数
/* *获取当前系统时间的时间戳 */ +(NSInteger)getNowTimestamp; /** * 获取当前时间 */ + (NSString *)getNowTimeTampF ...
- MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数
MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() ...
- js计算两个日期的天数差值
js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...
- java中计算两个日期之间天数的程序设计。
//用java编写出一个以下方法计算两个日期之间天数的程序设计. import java.util.regex.Matcher; import java.util.regex.Pattern; pub ...
- 使用LocalDateTime计算两个时间的差
LocalDateTime now = LocalDateTime.now();System.out.println("计算两个时间的差:");LocalDateTime end ...
- C 语言实例 - 计算两个时间段的差值
C 语言实例 - 计算两个时间段的差值 C 语言实例 C 语言实例 计算两个时间段的差值. 实例 #include <stdio.h> struct TIME { int seconds; ...
- oracle计算两个时间的差值(XX天XX时XX分XX秒)
在工作中需要计算两个时间的差值,结束时间 - 开始时间,又不想在js里写function,也不想在java里去计算,干脆就在数据库做了一个函数来计算两个时间的差值.格式为XX天XX时XX分XX秒: 上 ...
- JS实现——计算两日期之差
在网上找了个js实现的,根据相差天数计算日期和根据两个日期计算相差多少天的示例和代码: 根据相差天数计算日期: 距离: 年 月 日 相差: 天 (输入负数则往前计算) 日期是: 根据日期计算相差天 ...
随机推荐
- 多个raq导出一个excel2007中
需求描述: 客户以前通过润乾API把多个raq模板数据来导出到一个excel文件中,由于现在数据量过大一个raq数据就超过了65535,原来的2003接口已经满足不了现在的需求, ...
- 使用 Jenkins 和 Team Services 将应用部署到 Linux VM
持续集成 (CI) 和持续部署 (CD) 是一个管道,可以通过它生成.发布和部署代码. Team Services 针对到 Azure 的部署提供了一组完整的功能完备的 CI/CD 自动化工具. Je ...
- Docker 报错 error during connect: Get pipe/docker_engine: The system cannot find the file specified. - 摘要: 本文讲的是Docker 报错 error during connect: Get pipe/dock
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/version: open //./pipe/docker_ ...
- Script:诊断解析等待和高version count
select * from (select sql_id, count(child_number) from v$sql_shared_cursor group by sq ...
- CATransform3D的m34使用
CATransform3D的m34使用 效果图 源码 // // ViewController.m // StarWars // // Created by YouXianMing on 15/11/ ...
- 使用CocoaPods
使用CocoaPods 1. 安装CocoaPods 有时候,默认的 https://rubygems.org/ 访问不了,你需要先执行以下命令移除掉sources gem sources -r ht ...
- Exchange & Office 365最小混合部署
前言 这篇文章的主题是混合部署~ 混合使得本地组织和云环境像一个单一的.协作紧密的组织一样运作.当组织决定进行混合部署,达到本地Exchange Server和Office 365共存的状态时,就会面 ...
- Matlab 之meshgrid, interp, griddata 用法和实例(转)
http://blog.sina.com.cn/s/blog_67f37e760101bu4e.html 实例结果http://wenku.baidu.com/link?url=SiGsFZIxuS1 ...
- (1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合
1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存 ...
- SDN2017 第一次作业
作业链接 阅读LearningNetworkProgramming.pdf,思考后回答以下问题: 你会选择作 网络编程 方向的程序员吗?为什么? 请搜寻并列出至少3个有影响力的中英文SDN的门户网站. ...