【问题标题】:How to find day of the week for each date of that month if the day of first date is given?如果给出第一个日期,如何找到该月每个日期的星期几?
【发布时间】:2021-12-09 18:16:55
【问题描述】:

如果第一天是该月的星期五,我需要找到该月的每一天。需要编写一个名为 returnDay 的函数,该函数将接受一个参数,即该月的日期。日期应该在 1 和 31 的范围内。当我输入月份的日期时,必须调用返回它的日期的函数。如果实际参数小于 1 或大于 31,则提示输入不可用该月的日期。

所以我的问题是如何将 1-31 范围放在这里,它显示名称“日期”的问题是什么时候我运行它时没有定义?

      def returnDay(date):
         day_names= ['Sunday','Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
         day= input("Enter first day of the month: ")
         date = int(input('please enter the date of October: '))
         i = date%7 -1 
         if day in day_names:
                j = day_names.index(day)+i
                if j >= 7:
                    j = j - 7
                return(day_names[j])
print(returnDay(date))

【问题讨论】:

    标签: python-3.x function parameters conditional-statements weekday


    【解决方案1】:

    我在您的代码中发现了一些问题。从您调用 returnDay(date) 的方式来看,您似乎希望将日期作为此函数的参数。您不能从同样需要日期作为参数的函数中检索用户输入的日期。因此,首先重写您的代码,以便在此函数范围之外设置输入,然后将其提供给您的函数进行处理。日期的整数部分也是如此。现在来了解计算返回日期背后的逻辑:

    1. 用户提供第一天
    2. 用户提供当前日期

    我们走

        def returnDay(firstDay,currentDate):
    
        days_in_week = ['Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday', 
        'Saturday', 'Sunday']
    
        day_offset = 0    
    
        for i in range(7):
            if firstDay == days_in_week[i]:
                day_offset += i
    
        index_days_in_week = (currentDate + day_offset)%7 - 1
    
        return days_in_week[index_days_in_week]
    
    
        def main():
    
            firstDay = input("supply the first day of the month")
            currentDate = input("supply current day of the month")
            returnDay(firstDay, currentDate)
    
    main()
    

    您可能需要对其进行优化才能完全正常工作。我把这个作为家庭作业评估留给你。

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2011-12-05
      • 2021-09-06
      相关资源
      最近更新 更多