首页 > 解决方案 > 日历算法

问题描述

我正在为我的班级做任务。我有一个需要显示特定月份的星期几(星期一、星期二、星期三、星期四等)的地方。例如:2017 年 3 月有 4 个星期一、4 个星期二、5 个星期三、5 日、5 个星期五、4 个星期六、4 个星期日。

到目前为止,我...

class Calendar():
    def __init__(self, month, year):
        self.month = month
        self.year = year
        if month < 1 or month > 12:
            print("Error 404 month not found")

    def show(self):
        print(Calendar) ##Just test

test1 = Calendar(0, 2017)

test1.show()

我被困住了,因为我真的不知道如何使用月份和年份找到月份中的特定日期。

标签: python

解决方案


我认为您不应该使用库 - 显然任务是提出算法而不是使用现有工具。我不会写代码,因为这是你的任务。但我会尝试帮助解决方法:

  1. 尝试定义一个您知道是星期一的已知日期。
  2. 定义一个你知道是闰年的年份
  3. 定义一个月份列表,用于存储每个月的天数
  4. 对于任何输入的月份和年份,计算从您知道日期到该月第一天的天数。
  5. 对第 4 步的结果使用模 7 运算来查找该月第一天的星期几
  6. 现在从一周中给定日期的第一次出现中减去给定月份的天数(但也可以在此处检查闰年),并使用更多的模 7 算术来找出给定月份中一周中特定天数.

推荐阅读