iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 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实现输出日历

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

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

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

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

下载Word文档
猜你喜欢
  • python实现输出日历
    终于还有一个星期就放暑假了,可以抽出时间来学点新的东西,想想半年多没登CSDN差点把密码忘了我也是醉了。 废话不多说,正文开始 以下是使用几个简单的函数实现给定指定年月实现当月日历输出的程序,大部分内容引用自网易云课堂哈工大开设的Pyth...
    99+
    2023-01-31
    日历 python
  • JavaScript怎么实现日期输出
    本篇内容主要讲解“JavaScript怎么实现日期输出”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么实现日期输出”吧! 默认情况下,J...
    99+
    2024-04-02
  • C语言输出教学日历表的方法实例
    按照格式分别输入学期,开学时间,总周数即可得到课程表,以回车结束。 eg. 学期:2021-2022_2 开学时间:2021/11/25 总周数:20 输出结果 #include&...
    99+
    2024-04-02
  • C语言如何输出教学日历表
    本篇内容主要讲解“C语言如何输出教学日历表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何输出教学日历表”吧!按照格式分别输入学期,开学时间,总周数即可得到课程表,以回车结束。eg.学期...
    99+
    2023-06-30
  • java迭代器遍历输出怎么实现
    在Java中,可以使用迭代器来遍历集合或者数组。具体的实现方法如下: 使用迭代器遍历集合: List<String>...
    99+
    2024-02-29
    java
  • python如何输出日期
    python中输出复数的方法:在python中可以使用print函数进行打印输出操作,该函数在Python3.x是一个函数,但在 Python2.x版本不是一个函数,只是一个关键字;需要导入time模块进行获取当前时间戳,再通过time.s...
    99+
    2024-04-02
  • python --日期输出学习
    def print_drict(): ticks = time.time() print ticks print '====================' locatime = time.asctime...
    99+
    2023-01-31
    日期 python
  • python 实现logging动态变更输出日志文件名
    python作为一门非常容易上手的脚本语言,日志输出更是简单,logging模块,简单的设置配置和属性,就能实现到控制台输出日志,在basicConfig()设置文件名,就能够将日志...
    99+
    2024-04-02
  • C# log4net 日志输出的实现示例
    目录第一步:安装log4net第二步:添加log4net.config配置文件第三步:添加日志配置第四步:AssemblyInfo.cs中配置 Watch = true思路: 1.安...
    99+
    2024-04-02
  • python tkinter实现弹窗的输入输出
    本文实例为大家分享了python tkinter实现弹窗输入输出的具体代码,供大家参考,具体内容如下 代码如下: from tkinter import * tk = Tk() ...
    99+
    2024-04-02
  • 用Python实现一本个性化日历
    目录前言​一、准备二、代码说明1. 获取日期2. 绘制得到日历3. 作品是每个月份都有一个图在旁边做装饰4. 我们还有一个神秘功能​三、运行代码总结前言 哈喽铁汁们~新年到了,很多小...
    99+
    2024-04-02
  • Python实现日历壁纸动态标记
    迁自QQ空间 2014-08-08背景可能这个标题不够明确到底要实现什么功能,下面详细介绍一下。由于windows系统任务栏的日期只有年、月、日,对于我来说,偶尔想看看农历,所以每次都要去问度娘。后来发现一个不错的办法,就是找一个带日历(包...
    99+
    2023-01-31
    标记 日历 壁纸
  • mac日历出现广告怎么办
    要解决Mac日历出现广告的问题,可以尝试以下几种方法:1. 更新操作系统:确保你的Mac操作系统是最新版本,因为最新版本通常修复了一...
    99+
    2023-09-01
    mac
  • Java实现桌面日历
    本文实例为大家分享了Java实现桌面日历的具体代码,供大家参考,具体内容如下 问题描述: 编写一个程序,有一个窗口,该窗口为BorderLayout布局。窗口的中心添加一个Panel...
    99+
    2024-04-02
  • C#实现日历效果
    本文实例为大家分享了C#实现日历效果的具体代码,供大家参考,具体内容如下 展示: 主要代码: public partial class calendar : Form     {...
    99+
    2024-04-02
  • java实现日历功能
    本文实例为大家分享了java实现日历功能的具体代码,供大家参考,具体内容如下 完成一个 java application应用程序,输出一份当前所在时区当前时间的一个月的日历(1号到2...
    99+
    2024-04-02
  • js实现签到日历
    本文实例为大家分享了js实现签到日历的具体代码,供大家参考,具体内容如下 wxml代码 <view class="boxMain" style="height:{{dateL...
    99+
    2024-04-02
  • Vue如何实现日历
    这篇文章主要介绍了Vue如何实现日历,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。组件(component)是Vue最强大的功能之一。组件可...
    99+
    2024-04-02
  • php如何实现日历
    这篇文章主要介绍“php如何实现日历”,在日常操作中,相信很多人在php如何实现日历问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现日历”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!php实现...
    99+
    2023-06-25
  • Vue.js实现日历功能
    本文实例为大家分享了Vue.js实现日历功能的具体代码,供大家参考,具体内容如下 Github 功能需求 使用 Vue.js 实现指定年月的日历表,配合后台接口数据,添加对应日期的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作