您的位置:首页 > 健康 > 美食 > 枣庄疫情最新消息_广州国外建站模板_电商怎么做?如何从零开始学做电商赚钱_如何创建网站的快捷方式

枣庄疫情最新消息_广州国外建站模板_电商怎么做?如何从零开始学做电商赚钱_如何创建网站的快捷方式

2025/2/26 0:50:10 来源:https://blog.csdn.net/m0_73902771/article/details/143452108  浏览:    关键词:枣庄疫情最新消息_广州国外建站模板_电商怎么做?如何从零开始学做电商赚钱_如何创建网站的快捷方式
枣庄疫情最新消息_广州国外建站模板_电商怎么做?如何从零开始学做电商赚钱_如何创建网站的快捷方式

日期题常见于填空题,关键点涉及闰年的判断和星期几的判断

1.根据间隔天数计算日期

题目来源:CSDN算法技能树

在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

提示:
先判断是否为闰年,这会影响2月份是28还是29,如果是闰年,2月份是29,如果不是,就是28

#include <stdio.h>int main()
{int monthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int days = 1000;int year = 2014, month = 11, day = 9;int i;for (i = 0; i < days; i++){day++;if (day > monthDays[month - 1]){day = 1;month++;if (month > 12){month = 1;year++;if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))monthDays[1] = 29;elsemonthDays[1] = 28;                                                                    }}}printf("%d-%d-%d\n", year, month, day);getchar();return 0;
}

关键点

  • 闰年的判断(能被400整除 或者 能被4整除但同时不能被100整除)
  • 月份用数组来存储,根据是否闰年来修改2月的值

2.根据间隔天数判断星期几

整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?(其中已知1901年1月1日是星期二)

提示:
判断1901年1月1日到2000年12月31的每一天是星期几,如果是星期一则统计的个数+1。

#include <stdio.h>
int main()
{int year, day, dayrun = 0, dayping = 0, sumday = 0;int count = 0;for (year = 1901; year <= 2000; year++){if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){dayrun += 366;}else{dayping += 365;}}sumday = dayrun + dayping;for (day = 2; day <= sumday - 7; day += 7){count++;}printf("%d", count);return 0;
}

关键点

  • 已知起始日期和最终日期我们就能得知一共有多少天(不管是直接按这里这种根据年份直接计算还是按照最上面的题目一样直接遍历得到都行)
  • 这里最后这个for循环写得有点看不明白,在我看来先将总共天数减去6,然后就能直接除以7来得到一共有多少周,也就有多少个周一,再算上余数即可,这里感觉不太直观。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com