网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

初学c++笔记——循环判断(一)-创新互联

一道简单的循环题,输入两个日期,格式为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元起,快前往官网查看详情吧


当前标题:初学c++笔记——循环判断(一)-创新互联
路径分享:http://bjjierui.cn/article/depjdj.html

其他资讯