通过for循环迭代创建日历数据-持续获取上周的错误天数

问题描述

我正在将日历应用程序作为主应用程序的一部分。但是,在为每周实例的某几天创建实例时遇到问题。

calendar.py

for w in range(0,current_month.getWeeksTotal()):
    current_week = current_month.getWeek(w)
    week_length = current_week.getLength()
    week_label = LabelBlock(calendar_frame,w,width=8,height=1,justify='left',text='Week: ' + str(w + 1))
    for d in range(0,week_length):
        day_label = LabelBlock(calendar_frame,d + 1,width=2,justify='center',text=str(d + 1))

classes_calendar.py

    # Create a data block for a week
    class WeekBlock:
        def __init__(self,num,length):
            self.num = num
            self.length = length
            self.days = []
    
            for d in range(0,self.length):
                day = DayBlock(d + 1)
                self.days.append(day)
    
        def getDay(self,num):
            return self.days[num - 1]
    
        def getLength(self):
            return self.length


# Create a data block for a month
class MonthBlock:
    def __init__(self,days):
        self.num = num
        self.days = days
        self.days_remaining = days
        self.days_remainder = days % 7
        self.weeks = []
        self.weeks_total = 4
        self.months = dict([
            (1,'January'),(2,'February'),(3,'March'),(4,'April'),(5,'May'),(6,'June'),(7,'July'),(8,'August'),(9,'September'),(10,'October'),(11,'November'),(12,'December')
        ])
        self.name = self.months[num]

        # Create 4 weeks
        for w in range(0,4):
            week = WeekBlock(w + 1,7)
            self.weeks.append(week)
            self.days_remaining -= 7

        # Check for a partial week
        if self.days_remainder > 0:
            week = WeekBlock(w + 1,self.days_remaining)
            self.weeks_total += 1

    def getMonthName(self):
        return self.name

    def getWeek(self,num):
        return self.weeks[num - 1]

    def getWeeksTotal(self):
        return self.weeks_total

每次创建WeekBlock类的实例时,它都会根据一周实例的length参数创建许多DayBlock实例。

例如:假设一月的天数为31。每周的天数为7、7、7、7和3。

但是,当我在getLength()中使用calendar.py时。当我迭代一个月的几周时,它返回的长度为所有5周的7。为什么我在本节代码的最后一周(w == 4)中得到7而不是3?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...