python交互式日历制作_Python 实现日历的方法

Python 实现日历方法

感觉写的很乱,又冗余,应该有简洁的代码实现

# -*- coding:utf-8 -*-

import time, calendar, datetime

def print_top_month(year, month, day):

print('今天是%s年%s月%s日' %(year, month, day))

print('-------------------------------------')

print (' 日 一 二 三 四 五 六')

def start_day(year, month):

'''获取每月第一天是周几和当月总天数'''

# monthCount = calendar.monthrange(dateNow.year, dateNow.month)

monthCount = calendar.monthrange(int(year), int(month))

return monthCount[0]+1,monthCount[1]

def before_month(month):

# 上个月的日期

b_y,b_m = start_day(year, month-1)

i,u = start_day(year, month)

before_day = list(range(1,b_m+1))[-i:]

for f in before_day:

print('%5d' %f,end='')

def print_date(year, month):

i,u = start_day(year, month)

# if i != 7:

# print (' '* i,end='')

if i != 7:

before_month(month)

for t in range(1, u+1):

print ('%5d' %t,end='')

i += 1

if i % 7 == 0:

print (' ')

if i % 7 != 0:

after_month(year, month)

def after_month(year, month):

# 下个月的日期

if month != 12:

a_y,a_m = start_day(year, month+1)

i,u = start_day(year, month)

after_week = (calendar.weekday(year,month,u))+1

if after_week != 7:

o = 6-after_week

else:

o = 6

after_day = list(range(1,a_m+1))[:o]

for f in after_day:

print('%5d' %f,end='')

# 获取当前日期

# dateNow = datetime.datetime.now()

# year = dateNow.year

# month = dateNow.month

# day = dateNow.day

# 获取用户输入日期

# year, month, day = map(int,input('Please inpurt date:').split(','))

# 自定义日期

year, month, day = 2018, 8, 6

print_top_month(year, month, day)

print_date(year, month)

# after_month(year, month)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值