博客
关于我
(C++)设计一个程序能计算一个日期加上若干天后是什么日期
阅读量:754 次
发布时间:2019-03-23

本文共 1267 字,大约阅读时间需要 4 分钟。

对于给定的日期和累计天数,编写一个程序来计算加上这些天数后的新日期。使用二维数组存各个月份在平年和闰年的天数,并逐日处理每一天的累加。

问题分析

当给定一个日期和要累加的天数时,如何正确计算加上天数后的新日期。要处理闰年和平年对不同月份天数的影响,需要判断是否到下一个月,并决定是否进入下一个年份。

方法

  • 输入处理:读取输入的样例数量和每个样例的日期和天数。
  • 闰年判断:编写一个函数来判断给定年份是否为闰年。
  • 年度处理:创建一个二维数组,存储平年和闰年每个月的天数。
  • 逐日累加:逐个累加天数,处理每个月的天数,判断是否进入下一个月和年份。
  • 输出结果:格式化输出结果。
  • 解决代码

    #include 
    bool isLeap(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);}int main() { int n, yy, mm, dd, inc; scanf("%d", &n); for (; n > 0; --n) { scanf("%d %d %d %d", &yy, &mm, &dd, &inc); for (; inc > 0; --inc) { dd++; if (isLeap(yy)) { if (dd == monthDay[mm][1] + 1) { dd = 1; mm++; } } else { if (dd == monthDay[mm][0] + 1) { dd = 1; mm++; } } if (mm == 13) { mm = 1; yy++; } } printf("%d-%02d-%02d\n", yy, mm, dd); } return 0;}

    代码解释

  • 输入处理:读取输入的样例数n,然后逐行读取每个样例的年、月、日和累加天数。
  • 闰年判断:函数isLeap检查年份是否为闰年。
  • 月份天数数组monthDay数组存储平年和闰年各个月的天数。
  • 逐日累加:用于处理累加天数的循环,逐个加天数,检查是否进入下一个月,并调整月份和年份。
  • 结果输出:根据调整后的月份和年份,格式化输出结果。
  • 以上代码通过逐步的处理和优化,确保正确处理各种情况,包括闰年和平年月份的天数变化,以及跨年和跨月的情况,从而输出正确的新日期。

    转载地址:http://fhizk.baihongyu.com/

    你可能感兴趣的文章
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    Nginx配置参数中文说明
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>