首页 > 解决方案 > 是否有一种算法可以找到一周中的某一天(周日、周一等)?

问题描述

是否有一种算法可以找到带有日期(日和月,无年份)的一周中的某一天(星期日、星期一等),而仅使用一年中的开始日(1.1 将是:星期日、星期一.. .)?

标签: c

解决方案


算法是:

  1. 制作一个函数int sumDaysOfMyDate( int date[2] );,其中包含一个数组,int daysInMonth[12] = {31, 28, 31...};用于计算到给定日期的天数总和。(我认为日期存储在 2 个整数的数组中:一个代表当天,一个代表月份)
  2. 取 sum 的模 7 并将其用作数组的索引char *days[7] = {"Saturday", "Sunday", "Monday"...};。就是这样。

帮助您形象化

printf("%s\n", days[sumDaysOfMyDate(date)%7]);

所有这一切都假设 1 月 1 日是星期日,正如我从你问题的这一部分中猜到的那样:“1.1 将是:星期日,星期一......)”;假设二月有 28 天。


推荐阅读