python获取一个月之前日期_python 获取某个月的全部日期,打印日历的简单算法...

def w_day(y,m,d):#已知日期求星期

c=y//100

y=int(str(y)[-2:])

w=(y+(y//4)+(c//4)-2*c+(26*(m+1)//10)+d-1)%7 ##蔡勒公式只适合于1582年10月15日之后

return w

def ml(y,m,d=1):#当月有几天

ly=(y%400==0) or (y%4==0 and y%100!=0) and 1 or 0 #闰年=1,平年=0

return (m in (4,6,9,11) and 30 or (m==2 and 28+ly or 31))

def cal(y,m,d): #输出日历

wf=w_day(y,m=1,d=1) #该月的第一天是星期几

mc=[(d==x and ("["+str(x).rjust(2)+"]").center(5) or str(x).rjust(2).center(5)) for x in range(1,ml(y,m)+1)]

mc[:0]=[" "*5]*wf

mc=[(i+1)%7 and j or j+"\n" for i,j in enumerate(mc)]

td=("%s年%s月%s日 星期%s\n" %(y,m,d,("一","二","三","四","五","六","日")[w_day(y,m,d)-1])).center(35)

x="\n Sun Mon Tue Wed Thu Fri Sat\n"

return td+x+"".join(mc)

##################################################################

##################################################################

if __name__ == '__main__':

import datetime

T=datetime.date.today()

print("今天是:\n"+cal(T.year,T.month,T.day))

注:此算法转载与互联网,具体出处不详。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值