Jphil 发表于 2019-12-10 21:32:08

666

秃头小渣男 发表于 2019-12-24 08:59:39

66666666666

sugar1 发表于 2019-12-24 10:21:47

学习

pippo920 发表于 2019-12-24 10:34:11

我爱学习

0714 发表于 2019-12-25 08:54:14

前来膜拜

小五5 发表于 2019-12-25 09:31:05

666

独行求索 发表于 2019-12-26 17:13:48

学习学习

xuyymoli 发表于 2021-8-24 15:35:03

谢谢,正在学习!!!

Einsame 发表于 2021-11-15 20:12:18

666666!

颖颖M杰杰 发表于 2021-11-15 20:32:50

{:5_90:}

jiang1991001 发表于 2021-11-20 13:54:24

看看看看,学习学习

David1 发表于 2021-11-21 20:10:15

‘’

云龙烛火 发表于 2021-11-21 20:40:22

新手学习学习{:10_257:}

3336269964 发表于 2021-11-22 00:56:37

大佬牛啊

lifhv 发表于 2021-11-28 17:50:14

6

hbuemyq 发表于 2022-12-26 09:37:02

很棒的程序

wyhpylc 发表于 2022-12-26 14:04:14

学习!!!!!!

hveagle 发表于 2022-12-26 18:16:41

本帖最后由 hveagle 于 2022-12-26 18:32 编辑

非2022年来观看的人注意改一下有注释的地方,并且去掉注释
eachmonth =
week = ['下标为0, 占个位', '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
from tkinter import *
root = Tk()
def is366(n):
    if (n % 4 == 0 and n % 100) orn % 400 == 0:
      return True
    else:
      return False
def whatday(year, month, day):
    num366 = 0
    if year >= 2022:#改成相对年份
      if year >= 2024:#改成相对年份的下一个闰年
            for each in range(2024#改成相对年份的下一个闰年, year+1, 4):
                if is366(each):
                  num366 += 1
            if is366(year) and month < 3:
                num366 -= 1
      deltday = (year - 2022#改成相对年份)*365 + sum(eachmonth[:month]) + (day -1) + num366
      return (deltday-1) % 7
    else:
      if year <= 2020:#改成相对年份的上一个闰年
            for each in range(year, 2022#改成相对年份, 4):
                if is366(each):
                  num366 += 1
            if is366(year) and month >= 3:
                num366 -= 1
      deltday = (year - 2022#改成相对年份)*365 + sum(eachmonth[:month]) + (day -1) - num366
      return (deltday-1) % 7
class Date:
    def __init__(self, y, m, d):
      self.y = y
      self.m = m
      self.d = d
      self.w = whatday(self.y, self.m, self.d)
      self.row = (self.d + bnum)//7 +2 if (self.d + bnum)%7 else (self.d + bnum)//7 + 1      
data = []
y = int(input('请输入年:'))
m = int(input('请输入月:'))
em = eachmonth
bnum = whatday(y, m, 1)
if m == 2:
    if is366(y):
      em = 29
for i in range(1, em+1):
    data.append(Date(y, m, i))
Label(root, text=f'{y}年', fg='blue').grid(row=0, column=2)
Label(root, text=f'{m}月', fg='blue').grid(row=0, column=4)
i = -1
j = 0
while i < 6:
    while j < 7:
      i += 1
      j += 1
      Label(root, text=week, fg='red').grid(row=1, column=i)
for each in data:
    if each.w == 6 or each.w == 0:
      Label(root, text=str(each.d), fg='red').grid(row=each.row, column=each.w)
    else:
      Label(root, text=str(each.d)).grid(row=each.row, column=each.w)
mainloop()
42行普通敢对我61行tkinter吗?

match123_xbd 发表于 2023-4-8 23:08:44

{:7_141:}

某一个“天” 发表于 2024-9-8 13:40:46

{:10_256:}
页: 1 2 3 4 5 6 [7] 8
查看完整版本: 42行 Python 代码实现日历小程序