广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现输出日历
  • 955
分享到

python实现输出日历

日历python 2023-01-31 06:01:28 955人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

终于还有一个星期就放暑假了,可以抽出时间来学点新的东西,想想半年多没登CSDN差点把密码忘了我也是醉了。 废话不多说,正文开始 以下是使用几个简单的函数实现给定指定年月实现当月日历输出的程序,大部分内容引用自网易云课堂哈工大开设的pyth

终于还有一个星期就放暑假了,可以抽出时间来学点新的东西,想想半年多没登CSDN差点把密码忘了我也是醉了。

废话不多说,正文开始

以下是使用几个简单的函数实现给定指定年月实现当月日历输出的程序,大部分内容引用自网易云课堂哈工大开设的python程序设计入门函数一章的课后作业。

程序设计图如下:


自下往上看:

  • is_leap_year 判断是否为闰年
  • get_num_of_days_in_month 获得每月的天数
  • get_total_num_of_days 获得自1800年1月1日以来经过的天数
  • get_start_day 获得每月1日为星期几
  • print_month_body 打印日历的数字部分
  • get_month_name 获得每月的名称
  • print_month_title 打印日历标题与头部部分
具体实现如下:

# coding=utf-8
__author__ = 'Leonard'


def is_leap_year(year):
    # 判断是否为闰年
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        return True
    else:
        return False


def get_num_of_days_in_month(year, month):
    # 给定年月返回月份的天数
    if month in (1, 3, 5, 7, 8, 10, 12):
        return 31
    elif month in (4, 6, 9, 11):
        return 30
    elif is_leap_year(year):
        return 29
    else:
        return 28


def get_total_num_of_day(year, month):
    # 自1800年1月1日以来过了多少天
    days = 0
    for y in range(1800, year):
        if is_leap_year(y):
            days += 366
        else:
            days += 365

    for m in range(1, month):
        days += get_num_of_days_in_month(year, m)

    return days


def get_start_day(year, month):
    # 返回当月1日是星期几,由1800.01.01是星期三推算
    return 3 + get_total_num_of_day(year, month) % 7


# 月份与名称对应的字典
month_dict = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June',
              7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}


def get_month_name(month):
    # 返回当月的名称
    return month_dict[month]


def print_month_title(year, month):
    # 打印日历的首部
    print '         ', get_month_name(month), '   ', year, '          '
    print '-------------------------------------'
    print '  Sun  Mon  Tue  Wed  Thu  Fri  Sat  '


def print_month_body(year, month):
    '''
    打印日历正文
    格式说明:空两个空格,每天的长度为5
    需要注意的是print加逗号会多一个空格
    '''
    i = get_start_day(year, month)
    if i != 7:
        print ' ', # 打印行首的两个空格
        print '    ' * i,   # 从星期几开始则空5*几个空格
    for j in range(1, get_num_of_days_in_month(year, month)+1):
        print '%4d' %j, # 宽度控制,4+1=5
        i += 1
        if i % 7 == 0:  # i用于计数和换行
            print ' '   # 每换行一次行首继续空格


#   主函数部分
year = int(raw_input("Please input target year:"))
month = int(raw_input("Please input target month:"))
print_month_title(year, month)
print_month_body(year, month)


运行示例:

实现起来难度不大,只是在格式控制上需要花点心思,具体详见print_month_body函数的注释。

第一次用Python编了一个有八十行的程序,希望大家多多指教。

--结束END--

本文标题: python实现输出日历

本文链接: https://www.lsjlt.com/news/189430.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现输出日历
    终于还有一个星期就放暑假了,可以抽出时间来学点新的东西,想想半年多没登CSDN差点把密码忘了我也是醉了。 废话不多说,正文开始 以下是使用几个简单的函数实现给定指定年月实现当月日历输出的程序,大部分内容引用自网易云课堂哈工大开设的Pyth...
    99+
    2023-01-31
    日历 python
  • python实现日历效果
    本文实例为大家分享了python实现日历效果的具体代码,供大家参考,具体内容如下 一、代码编程过程 根据年月日算出星期几 def get_week_with_data(y,m,d): '''根据年月日计算...
    99+
    2022-06-02
    python 日历
  • C语言输出教学日历表的方法实例
    按照格式分别输入学期,开学时间,总周数即可得到课程表,以回车结束。 eg. 学期:2021-2022_2 开学时间:2021/11/25 总周数:20 输出结果 #include&...
    99+
    2022-11-13
  • C语言如何输出教学日历表
    本篇内容主要讲解“C语言如何输出教学日历表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何输出教学日历表”吧!按照格式分别输入学期,开学时间,总周数即可得到课程表,以回车结束。eg.学期...
    99+
    2023-06-30
  • python如何输出日期
    python中输出复数的方法:在python中可以使用print函数进行打印输出操作,该函数在Python3.x是一个函数,但在 Python2.x版本不是一个函数,只是一个关键字;需要导入time模块进行获取当前时间戳,再通过time.s...
    99+
    2022-10-11
  • python --日期输出学习
    def print_drict(): ticks = time.time() print ticks print '====================' locatime = time.asctime...
    99+
    2023-01-31
    日期 python
  • JavaScript怎么实现日期输出
    本篇内容主要讲解“JavaScript怎么实现日期输出”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么实现日期输出”吧! 默认情况下,J...
    99+
    2022-10-19
  • python 实现logging动态变更输出日志文件名
    python作为一门非常容易上手的脚本语言,日志输出更是简单,logging模块,简单的设置配置和属性,就能实现到控制台输出日志,在basicConfig()设置文件名,就能够将日志...
    99+
    2022-11-11
  • C# log4net 日志输出的实现示例
    目录第一步:安装log4net第二步:添加log4net.config配置文件第三步:添加日志配置第四步:AssemblyInfo.cs中配置 Watch = true思路: 1.安...
    99+
    2022-11-12
  • C语言怎么打印输出某一年的日历
    本篇内容主要讲解“C语言怎么打印输出某一年的日历”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么打印输出某一年的日历”吧!输入一个年份(1970以后的),以 2*6 的格式打印当年的日历...
    99+
    2023-06-08
  • mac日历出现广告怎么办
    要解决Mac日历出现广告的问题,可以尝试以下几种方法:1. 更新操作系统:确保你的Mac操作系统是最新版本,因为最新版本通常修复了一...
    99+
    2023-09-01
    mac
  • python tkinter实现弹窗的输入输出
    本文实例为大家分享了python tkinter实现弹窗输入输出的具体代码,供大家参考,具体内容如下 代码如下: from tkinter import * tk = Tk() ...
    99+
    2022-11-13
  • shell脚本按当前日期输出日志的实现
    shell脚本基本技能是设置变量,输出信息。如下: sh脚本输出到控制台 将以上脚本保存到test.sh脚本文件中,并赋予可执行权限:sudo chmod +x test.sh 执行脚本:bash test.sh 控制...
    99+
    2022-06-04
    shell当前日期输出日志 shell 输出日志 shell 日期日志
  • Python实现农历生日提醒功能
    前言:       某天突发奇想,想要实现一个农历生日提醒。这个时候有了如下的大概思路:      &nb...
    99+
    2022-10-18
  • 用Python实现一本个性化日历
    目录前言​一、准备二、代码说明1. 获取日期2. 绘制得到日历3. 作品是每个月份都有一个图在旁边做装饰4. 我们还有一个神秘功能​三、运行代码总结前言 哈喽铁汁们~新年到了,很多小...
    99+
    2022-11-13
  • Python实现日历壁纸动态标记
    迁自QQ空间 2014-08-08背景可能这个标题不够明确到底要实现什么功能,下面详细介绍一下。由于windows系统任务栏的日期只有年、月、日,对于我来说,偶尔想看看农历,所以每次都要去问度娘。后来发现一个不错的办法,就是找一个带日历(包...
    99+
    2023-01-31
    标记 日历 壁纸
  • shell如何通过遍历输出两个日期范围内所有日期
    这篇文章给大家分享的是有关shell如何通过遍历输出两个日期范围内所有日期的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言在平常c/c++开发中经常遇到日期处理的情形,例如求两个给定的日期之间相差的天数或者需要...
    99+
    2023-06-09
  • Python怎么输出日期和时间
    这篇文章主要介绍“Python怎么输出日期和时间”,在日常操作中,相信很多人在Python怎么输出日期和时间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么输出日期和时间”的疑惑有所帮助!接下来...
    99+
    2023-06-02
  • python如何使用print输出日志
    这篇文章主要为大家展示了“python如何使用print输出日志”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用print输出日志”这篇文章吧。如何使用 print 输出日志初...
    99+
    2023-06-27
  • Python列表遍历输出的方法有哪些
    Python列表遍历输出的方法有以下几种:1. 使用for循环遍历列表元素:pythonmy_list = [1, 2, 3, 4,...
    99+
    2023-10-20
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作