微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不导入模块的情况下获取给定日期Python3的确切星期几

如何解决如何在不导入模块的情况下获取给定日期Python3的确切星期几

我正在学习有关编写自己的函数的信息,并陷入课程问题。我已经尝试搜索实现此目的的各种方法,但这都包括导入某种模块,但是我试图在没有模块的情况下做到这一点。

def isYearLeap(year):        # finding out if year is a leap year
return year % 4 == 0 and (year % 400 == 0 or year % 100 != 0)

def daysInMonth(year,month):        #finding out days in a given month given a year
if month in [1,3,5,7,8,10,12]:
    return 31
elif month in [4,6,9,11]:
    return 30
elif month == 2:
    if isYearLeap(year):
        return 29
    else:
        return 28
else:
    return

def dayOfYear(year,month,day):     #stuck here; finding day of the week from a date(YYYY/MM/DD)

print(dayOfYear(2000,12,31))

可能的方法(?): -我找到了一个可以转换为代码的过程(键值方法): 例如:1482年12月16日

  1. 采用年份的后两位数字。在我们的示例中,这是82。 -首先,我如何只取参数的最后两位数字,然后使用该数字进行下一步?

  2. 除以4,然后除去任何余数。 82/4 = 20,余数2,所以我们认为是“ 20”。

  3. 添加每月的某天。在我们的示例中,20 + 16 = 36。

  4. 从下表中添加月份的键值。[1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月]对应于[1,4,4 ,0,2,5,0,3,6,1,4,4,6]本例中的月份是12月,键值为6。36 + 6 = 42。

  5. 如果您的日期是a年的1月或2月,请减去1。我们使用的是12月,因此我们不必担心此步骤。

  6. 添加下表中的世纪代码。 (这些代码用于格里高利历。该规则对于儒略日期更简单。)[1700s,800s,1900s,2000s]对应于[4、2、0、6]我们的示例年份是2482,而2400s不是在桌子上。幸运的是,公历每四百年重复一次。我们要做的就是加或减400,直到表格中有一个日期。 2482-400 = 2082,所以我们看一下2000年代的表格,并获得代码6。现在,将其添加到运行总计中:42 + 6 = 48。

  7. 加一年的最后两位数字。 48 + 82 = 130。

  8. 除以7,得到余数。这次,1表示星期日,2表示星期一,依此类推。其余的0表示星期六。 130/7 = 18,其余为4,因此2482年12月16日将在一周的第四天-星期三。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。