鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[技术交流] 42行 Python 代码实现日历小程序

  [复制链接]
发表于 2019-12-10 21:32:08 | 显示全部楼层
666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-24 08:59:39 | 显示全部楼层
66666666666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-24 10:21:47 From FishC Mobile | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-24 10:34:11 | 显示全部楼层
我爱学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-25 08:54:14 | 显示全部楼层
前来膜拜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-25 09:31:05 | 显示全部楼层
666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-26 17:13:48 | 显示全部楼层
学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-24 15:35:03 | 显示全部楼层
谢谢,正在学习!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-15 20:12:18 | 显示全部楼层
666666!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-15 20:32:50 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-20 13:54:24 | 显示全部楼层
看看看看,学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 20:10:15 | 显示全部楼层
‘’
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-21 20:40:22 From FishC Mobile | 显示全部楼层
新手学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 00:56:37 From FishC Mobile | 显示全部楼层
大佬牛啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-28 17:50:14 | 显示全部楼层
6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-12-26 09:37:02 | 显示全部楼层
很棒的程序
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-26 14:04:14 | 显示全部楼层
学习!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-12-26 18:16:41 | 显示全部楼层
本帖最后由 hveagle 于 2022-12-26 18:32 编辑

非2022年来观看的人注意改一下有注释的地方,并且去掉注释
  1. eachmonth = [0,31,28,31,30,31,30,31,31,30,31,30,31]
  2. week = ['下标为0, 占个位', '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
  3. from tkinter import *
  4. root = Tk()
  5. def is366(n):
  6.     if (n % 4 == 0 and n % 100) or  n % 400 == 0:
  7.         return True
  8.     else:
  9.         return False
  10. def whatday(year, month, day):
  11.     num366 = 0
  12.     if year >= 2022:#改成相对年份
  13.         if year >= 2024:#改成相对年份的下一个闰年
  14.             for each in range(2024#改成相对年份的下一个闰年, year+1, 4):
  15.                 if is366(each):
  16.                     num366 += 1
  17.             if is366(year) and month < 3:
  18.                 num366 -= 1
  19.         deltday = (year - 2022#改成相对年份)*365 + sum(eachmonth[:month]) + (day -1) + num366
  20.         return (deltday-1) % 7
  21.     else:
  22.         if year <= 2020:#改成相对年份的上一个闰年
  23.             for each in range(year, 2022#改成相对年份, 4):
  24.                 if is366(each):
  25.                     num366 += 1
  26.             if is366(year) and month >= 3:
  27.                 num366 -= 1
  28.         deltday = (year - 2022#改成相对年份)*365 + sum(eachmonth[:month]) + (day -1) - num366
  29.         return (deltday-1) % 7
  30. class Date:
  31.     def __init__(self, y, m, d):
  32.         self.y = y
  33.         self.m = m
  34.         self.d = d
  35.         self.w = whatday(self.y, self.m, self.d)
  36.         self.row = (self.d + bnum)//7 +2 if (self.d + bnum)%7 else (self.d + bnum)//7 + 1        
  37. data = []
  38. y = int(input('请输入年:'))
  39. m = int(input('请输入月:'))
  40. em = eachmonth[m]
  41. bnum = whatday(y, m, 1)
  42. if m == 2:
  43.     if is366(y):
  44.         em = 29
  45. for i in range(1, em+1):
  46.     data.append(Date(y, m, i))
  47. Label(root, text=f'{y}年', fg='blue').grid(row=0, column=2)
  48. Label(root, text=f'{m}月', fg='blue').grid(row=0, column=4)
  49. i = -1
  50. j = 0
  51. while i < 6:
  52.     while j < 7:
  53.         i += 1
  54.         j += 1
  55.         Label(root, text=week[j], fg='red').grid(row=1, column=i)
  56. for each in data:
  57.     if each.w == 6 or each.w == 0:
  58.         Label(root, text=str(each.d), fg='red').grid(row=each.row, column=each.w)
  59.     else:
  60.         Label(root, text=str(each.d)).grid(row=each.row, column=each.w)
  61. mainloop()
复制代码

42行普通敢对我61行tkinter吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-8 23:08:44 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-9-8 13:40:46 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 05:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表