当前位置: 首页 > wzjs >正文

东莞市建设安监局网站首页东昌府聊城做网站公司

东莞市建设安监局网站首页,东昌府聊城做网站公司,引流量的网站,如何进行网站改版设计5.日期差值 链接: 日期差值_牛客题霸_牛客网 题目: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 示例: 输入:有多组数据,每组数据有两行,分别表示两…

5.日期差值

链接: 日期差值_牛客题霸_牛客网

题目:

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

示例:

输入:有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
​
20110412
20110422
​
输出:每组数据输出一行,即日期差值
11

代码

1.输入:两个日期

20130212 num1

20142021 num2

输出: 日期差值 n

故可实现一个函数dateToDays:输入年月日,返回该年月日到

0年1月1日的天数。再两个daysToDays()的返回值进行相减。

2.对于dateTodays:

参数:年月日 year ,month,day

返回值:该年月日到一月一日的天数 int

处理: 计算出该年到公元0年1月1日有几天。

==》

使用一个变量resultDays进行统计

先计算该年离公元0年1月1日有几天,封装daysOfyear()

再计算该月里当年的1月1日有几天 ,封装daysOfMonth()

再resultDays+=day-1;

这里的逻辑是不计算当天;

例如2014年5月3日。我们已经通过daysOfyear()计算了公元0年到公元2013年12月31日的天数。

也已经通过了daysOfMonth()计算了前面4个月的天数,即: 1月有31天,2月有28天,3月有31天,4月有30天,只需要再计算5月1日,5月2日。所以还有2天。

当然,你也可以算上当天,那就是resultDays+=day;对这道题来说是不影响的。

3..对于daysOfYear:

参数:年year

返回值:该年离公元0年1月1日有几天 int

处理:利用一个int totalDays统计,即遍历加上前面几个月的天数。注意:闰年有365天,非闰年有365天。

#include <iostream>
using namespace std;
​
/*
返回值:bool
参数:int year
处理:判断是否为闰年,返回对应的bool
*/
bool isLeap(int year) {if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {return true;}return false;
}
​
​
void NextDay(int& year, int& month, int& day) {//用一个数组存储月份和天数的对应关系int dayOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
​//判断是否为闰年(会影响二月的天数)if (isLeap(year)) {dayOfMonth[2] = 29;} else {dayOfMonth[2] = 28;}day++;if (day > dayOfMonth[month]) {day = 1;month++;}if (month > 12) {month = 1;year++;}
}
​
​
int daysOfyear(int year) {int totalDays = 0;for(int i=0;i<year;i++){if (isLeap(year)) {totalDays+= 366;} else {totalDays += 365;}}return totalDays;
}
​
/*
参数:年份year,月份month
返回值:该月份离年头有多少天 int
处理:使用int totaldays变量加上前面每月的天数
*/
int daysOfMOnth(int year, int month) {int totaldays = 0;int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
​if (isLeap(year)) {days[2] = 29; // 闰年2月是29天}//例如7月,只需要加到6月for (int i = 0; i < month; i++) {totaldays += days[i];}return totaldays;
​
}
​
/*
参数:年月日 year ,month,day
返回值:该年月日到一月一日的天数  int
处理:计算出该年到公元年有几天。
*/
int dateTodays(int year, int month, int day) {int resultDays = 0;//先计算该年离公元0年1月1日有几天resultDays += daysOfyear(year);//再计算剩下的月有多少天(可封装一个函数daysOfMOnth())resultDays += daysOfMOnth(year, month);//再加上剩下的天resultDays += (day - 1);return resultDays;
}
​
​
int main() {int year1, month1, day1;int year2, month2, day2;int nums1,nums2;int count = 1;scanf("%d\n", &nums1);scanf("%d\n", &nums2);year1=nums1/10000;year2=nums2/10000;month1=(nums1/100)%100;month2=(nums2/100)%100;day1=nums1%100;day2=nums2%100;int days1 =  dateTodays(year1, month1, day1);int days2 =  dateTodays(year2, month2, day2);// 计算日期差int diff = abs(days1 - days2);printf("%d\n", diff + 1);return 0;​
}

结果

整理

分析以上代码,我整了了几个知识点:

1.adbs()

在代码中,abs() 是一个标准库函数,作用是返回一个数的绝对值。

例如,abs(-10) 会返回 10abs(10) 则返回 10

2.如何从一个8位数中分别取出前4位,再2位,后2位呢?

==》

可这样理解:去掉后面就是除法,留下后面就是取余

例子: 20140221

年份:去掉后面4位,得结果,即除以10^4

月份:去掉后面2位,得前面6位,再留下后面2位,即(除以10^2再取余10^2)

日期:留下后面2位,即取余10^2

3.各个月份的天数有什么记忆技巧吗?

==》

可以用顺口溜:

“一三五七八十腊,三十一天永不差;

四六九冬三十整,唯有二月二十八(闰年加一)。

” 腊:12月 冬:11月

或用拳头凸起记忆法

方法:双手握拳,用指关节凸起和凹陷表示月份天数:

凸起(关节高):31天的月份1月、3月、5月、7月、8月、10月、12月)。

凹陷(指缝低):30天的月份(4月、6月、9月、11月)。

2月单独记:平年28天,闰年29天。

4.判断闰年

被4整除但不能被100整除,或者能被400整除的年份。就是闰年。

闰年会影响2月的天数。

结果:


文章转载自:

http://X8OYJrCU.bxnrx.cn
http://I9qQYjWv.bxnrx.cn
http://yt3kvZ08.bxnrx.cn
http://4qZNdiEy.bxnrx.cn
http://8Hwl6Ztt.bxnrx.cn
http://LgOFUIqQ.bxnrx.cn
http://ji8Bxp4e.bxnrx.cn
http://1seynd50.bxnrx.cn
http://DkrMbktf.bxnrx.cn
http://AvbaqzPF.bxnrx.cn
http://FEreF0vQ.bxnrx.cn
http://UH0q9JTO.bxnrx.cn
http://qni9MquK.bxnrx.cn
http://WD7lMXf6.bxnrx.cn
http://KnNrtvUn.bxnrx.cn
http://1Q66fMWT.bxnrx.cn
http://36hAIDkk.bxnrx.cn
http://2Ll9fVB8.bxnrx.cn
http://wI5vEkzy.bxnrx.cn
http://WE0Wp4Bi.bxnrx.cn
http://MJtiudFR.bxnrx.cn
http://QJucuua2.bxnrx.cn
http://SG9yFEq3.bxnrx.cn
http://hR8TrkWc.bxnrx.cn
http://bG2B0MVM.bxnrx.cn
http://6u8kmCfr.bxnrx.cn
http://JQbd8ZPU.bxnrx.cn
http://jLa2mzIY.bxnrx.cn
http://lFCdHyQh.bxnrx.cn
http://y5oc2XwT.bxnrx.cn
http://www.dtcms.com/wzjs/677081.html

相关文章:

  • 四会市城乡规划建设局网站响应式网站布局
  • 怎么可以建网站东莞建站模板代理
  • 建站行业突破东莞官方网站 优帮云
  • 检察机关门户网站建设工作自查报告网络建设工作总结
  • 建设银行贷款业务网站新媒体运营培训
  • 首次建设网站流程服装企业网站源码
  • 网站建设维护与推广建设企业网站的人员组成
  • 专业网站设计定制承德网站建设制作
  • 东莞网站开发方案wordpress 函数 chm
  • wordpress sql查询第三方关键词优化排名
  • icp备案查询站长工具宁波专业建网站外包
  • 网站开发需要准备什么营销型网站管理系统
  • 山西省城乡住房和建设厅网站首页做网站网站关键词是什么
  • 五力合一营销型网站建设系统设计素材网站解析
  • 小型企业建站公司seo电商
  • 网站登记备案查询大学生简历免费制作网站
  • 萧山品牌网站建设网站控制面板地址
  • 网站制作模板图片创意设计绘画
  • 上海网站建设安全wordpress 增加下载功能
  • 做网站过时了三门峡高端网站开发
  • 网站 留言板 制作新网站不被收录
  • 安徽品质网站建设创新电子商务网站建设与管理的背景
  • 做网站用电脑自带的wordpress 分类目录 关键词
  • 做细胞激活的母液网站网站建设工作室
  • 网站seo分析报告案例企业营销策略分析论文
  • 做电影网站配什么公众号淘宝建站服务
  • 深圳住房和建设局网站业务主题wordpress 信用卡收款
  • 佛山新网站建设机构wordpress子分类模板
  • 泉州企业网站维护定制网站代下单怎么做
  • 品牌网站设计案例wordpress注册未发送邮件