问题描述
我正在将日历应用程序作为主应用程序的一部分。但是,在为每周实例的某几天创建实例时遇到问题。
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 (将#修改为@)