日历是以1900年1月1日 为基础的 那天的星期1是

# 判断是否是闰年

def rn(i):

# 判断是不是闰年

if (i % 400 == 0) or (i % 4 == 0 and i % 100 != 0):

return True

else:

return False

# 计算总天数

def days(y, m):

# 总年数

leap_year = []

common_year = []

for i in range(1900, y):

if rn(i):

leap_year.append(i)

else:

common_year.append(i)

# 本年之前总天数

y_days = 366*len(leap_year) + 365*len(common_year)

# 本年本月之前总天数

m_days = 0

if m == 1:

m_days = 0

elif m == 2:

m_days = 31

elif m == 3:

if rn(y):

m_days = 60

else:

m_days = 59

elif m == 4:

if rn(y):

m_days = 91

else:

m_days = 90

elif m == 5:

if rn(y):

m_days = 121

else:

m_days = 120

elif m == 6:

if rn(y):

m_days = 151

else:

m_days = 150

elif m == 7:

if rn(y):

m_days = 182

else:

m_days = 181

elif m == 8:

if rn(y):

m_days = 213

else:

m_days = 212

elif m == 9:

if rn(y):

m_days = 244

else:

m_days = 243

elif m == 10:

if rn(y):

m_days = 274

else:

m_days = 273

elif m == 11:

if rn(y):

m_days = 305

else:

m_days = 304

elif m == 12:

if rn(y):

m_days = 335

else:

m_days = 334

all_days = y_days + m_days

return all_days

# 判断本月第一天是星期数

def f_day(all_days):

week = 0

if all_days % 7 == 0:

week = 1

elif all_days % 7 == 1:

week = 2

elif all_days % 7 == 2:

week = 3

elif all_days % 7 == 3:

week = 4

elif all_days % 7 == 4:

week = 5

elif all_days % 7 == 5:

week = 6

elif all_days % 7 == 6:

week = 7

return week

# 判断需要显示月份当月天数

def m_d(y, m):

m_30 = [4, 6, 8, 9, 11]

m_31 = [1, 3, 5, 7, 8, 10, 12]

if rn(y) and m == 2:

m_day = 29

else:

if m in m_31:

m_day = 31

elif m in m_30:

m_day = 30

else:

m_day = 28

return m_day

# 打印日历

def cal(m_day, week):

# 第一行

# print(m_day)

s1 = '星期日' + 3*' ' + '星期一' + 3*' ' + '星期二' + 3*' ' + '星期三' + 3*' ' + '星期四' + 3*' ' + '星期五' + 3*' ' + '星期六'

print(s1)

if week == 7:

for i in range(1, m_day+1):

if i < 10:

s = 2 * ' ' + str(i) + 4 * ' '

else:

s = 2 * ' ' + str(i) + 3 * ' '

print(s, end='')

if (i + len(s)) % 7 == 0:

print('')

else:

# week不是星期日的,需要往后移动week个位置

print(8*week*' ', end='')

for i in range(1, m_day+1):

if i < 10:

s = 3 * ' ' + str(i) + 4 * ' '

else:

s = 3 * ' ' + str(i) + 3 * ' '

print(s, end='')

if (week + i) % 7 == 0:

print('')

if __name__ == '__main__':

y = int(input('请输入年份'))

m = int(input('请输入月份'))

all_days = days(y, m)

week = f_day(all_days)

print(week)

m_day = m_d(y, m)

print(m_day)

cal(m_day, week)

python生成日历书上哪里错了_python生成日历 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...

    变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...

  2. python 过采样 权重实现_不平衡数据集的处理 - osc_sqq5osi1的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.不平衡数据集的定义 所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡.以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下通常情况下把多数类样本的比例接近100:1这种情况下 ...

  3. python作业大全_Python作业汇总 - osc_p8sbsl3n的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. info = 'abc' info[2] = 'd' 结果是什么,为什么会报错呢? info[2]已赋值,不能再次赋值."str"对象不支持项目分配 2. 如果要把上面的字符 ...

  4. python列表去重效率_python面试题 - osc_yztbpii7的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.一行代码实现1--100之和 In [1]: sum(range(1,101)) Out[1]: 5050 1-100求和 2.如何在一个函数内部修改全局变量 a=520 deffun():glo ...

  5. python 条件表达式换行_Python基础语法 - LongKing-Xu的个人空间 - OSCHINA - 中文开源技术交流社区...

    python基础语法 一.标识符 在Python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. 在Python中的标识符是区分大小写的. 在Python中以下划线开头的标识符是有 ...

  6. python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...

    python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...

  7. python数值运算操作符也叫做内置操作符_Python的操作符 - osc_r1gtal48的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.数值运算符 python提供了9个基本的数值运算符,这些运算符由编译器直接提供,所以叫做内置运算符(操作符): 运算符 功能 + 加 - 减 * 乘 / 除 % 模 ** 幂 // 整除 -i 负 ...

  8. python剪切文件_python剪切文件 - osc_42713235的个人空间 - OSCHINA - 中文开源技术交流社区...

    心血来潮,手机上导出的图片全部按日期放在不同文件夹,很是麻烦,想放在一起方便浏览,手动操作费时费力,想到bat命令,不是很熟,看到python欣喜不已,很是方便 递归遍历文件,剪切出来,删除空文件夹 ...

  9. python日常工作_python日常工作 - osc_sd6j22mg的个人空间 - OSCHINA - 中文开源技术交流社区...

    分析nginx日志,得出用户ip及用户相关信息.(访问次,流量量大,相应时间) logip = {'1.1.1.1':[200,20M,1S],} 'please' enter your want i ...

最新文章

  1. .Net 2.0 事件机制,更简化了...
  2. TCP 三次握手 和 四次挥手
  3. java怎么复制别人的数据库_java-如何在不使用Apache DDLUtils的情况下使用JDBC将模式从一个数据库复制到另一个数据库?...
  4. 就会编成新闻稿的飞鸽传书
  5. 【hive】hive权限
  6. pythonios脚本语言-iOS开发Swift篇—(一)简单介绍
  7. Windows 7如何限制运行特定的应用程序(转载)
  8. 怎么会Sql serverW数据库模型图转化成ord于--您还可以查看属性信息字段
  9. 拔染印花几点注意事项
  10. 写偏斜(Write Skew)和丢失更新(Lost Updates)区别
  11. python输出文件夹路径_python如何获取文件夹下第一层文件的路径,
  12. java关键字 final static
  13. 微信小程序下拉刷新不回弹
  14. 《问佛》——仓央嘉措
  15. 毕业生最大感伤:穷!
  16. ubuntu 18.04 卸载firebox
  17. 数据库操作之导入导出dmp
  18. GrabCut图像分割
  19. 阿里云PAI平台模型压缩技术落地淘宝直播双十一应用:一猜到底
  20. 最全各种浏览器网页星号点号密码查看最简方法(技术小白也能看懂使用)

热门文章

  1. Linux快速工作使用指令经验(持续更新)
  2. 开源自制6通道航模遥控器,Arduino Pro Mini NRF24L01模块
  3. 五天带你学完《计算机网络》·第三天·传输层
  4. 发布至今18年,为什么SQLite一定要用C语言来开发?
  5. Android Studio 错误: 非法字符: #39;\ufeff#39; 解决方式|错误: 须要class, interface或enum...
  6. [体感游戏]关于体感游戏的一些思考(三) --- 射击
  7. Asp.Net_Mvc_IgnoreRoute
  8. linux 查看文件夹大小 du命令
  9. 一个讲解WiFi和蓝牙协议的视频课程网站
  10. python读取指定字节长度的文本