从品牌网站建设到网络营销策划,从策略到执行的一站式服务
一道简单的循环题,输入两个日期,格式为YYYYmmdd,计算相差的天数
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了新平免费建站欢迎大家使用!虽然有说如果是连续的天数则按2天计算(比如20230101和20230102,要求输出结果是2),但我打算之后把这个算法写入工具里计算倒计时啥的,正常来讲上述出现连续的天数的情况倒计时应该是1天,所以最后输出结果没有按标准来会少1天
思路参考博客:c/c++ 输入两个日期,计算日期相差多少天_编程侯的博客-博客_c++ 计算日期差
简单来讲就是将两个天数按整数格式输入,获取之后通过除余获得年月日,将年份较早的通过累加的方式加到另一个年份上,累加的数值就是天数差
相关代码
判断闰年:
//判断是否为闰年
bool isLeap(int year)
{
return (year % 4 ==0 && year % 100 != 0) || (year % 400 == 0);
}
数组记录每个月的天数:
//二维数组记录:平年和闰年的每个月天数,0为闰年1为平年
int month[13][2] = {{0, 0},
{31, 31}, {28, 29}, {31, 31}, {30, 30},
{31, 31}, {30, 30}, {31, 31}, {31, 31},
{30, 30}, {31, 31}, {30, 30}, {31, 31}};
核心循环(count为输出值,默认time1小于time2,不是就先处理了再进行):
//计算方法:将time1累加到time2
while(y1< y2 || m1< m2 || d1< d2){
d1++; //增加天数
if(d1 == month[m1][isLeap(y1)] + 1){
m1++; //天数满了加月数
d1 = 1;
}
if(m1 == 13){
y1++; //月数满了加年数
m1 = 1;
}
count++; //每次循环累计
}
小结:
本身输入格式要求YYYYmmdd很大程度上减少了难道,要是要求字符串格式输入我应该会头疼好久,不光如此,要是月份不是输出01而是1这种,判断条件写起来应该也是会很麻烦,到时候可以试试怎么做
网上的写法无论是闰年判断还是循环判断写的都比我简单,学习之后写个博客记录一下
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图