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)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,335评论 25 709
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 早上五点多,梦中爸爸让给他帮忙借钱给他,我说这不奶奶(已故)刚让我们给三叔(已故)家办事凑了十万块,现在没钱了。奶...
    心境_01阅读 1,241评论 0 0
  • 昨天参加了一个观影的活动,十几个人在一家安静的咖啡店里,观看一部叫做《没有过去的男人》的片子。在观影之前,放映人小...
    陌笙的小屋阅读 1,800评论 0 1
  • 作者/亦客飞翔 陕西省,丹凤县,全国朋友往这看。 蟒岭山,老树林,有个村子驻这里。 村不大,环境好,有山有水全是宝...
    亦客飞翔阅读 4,346评论 13 7