Python实现的简单万年历例子分享


Posted in Python onApril 25, 2014
#!/usr/bin/env python2
#-*- coding:utf-8 -*-
__author__ = 'jalright'
"""
使用python实现万年历
"""
def is_leap_year(year):
    """
判断是否是闰年,返回boolean值
    """
    if year/4==0 and  year/400 !=0:
        return True
    elif year/100 == 0 and year/400 ==0 :
        return True
    else:
        return False
def getMonthDays(year,month):
    """
获取指定年月的月份有多少天
    """
    days = 31        #31天居多,设置为默认值
    if month == 2 :    #2月份要判断是否是闰年
        if is_leap_year(year):
            days=29
        else:
            days=28;
    elif month in [4,6,9,11]:     #判断小月,只有30天
        days=30
    return days
def getTotalDays(year,month):
    """
获取1990-01-01离现在有多少天,1990-01-01是星期一,以这个为标准来判断星期
    """
    totalDays=0
    for i in range(1990,year):     #使用range来循环,算出多少年多少天
        if is_leap_year(i):        #判断是否是闰年
            totalDays += 366
        else:
            totalDays += 365
    for i in range(1,month):       #使用range循环,算出今年前面几个月过了多少天
        totalDays +=getMonthDays(year,i)
    return totalDays

if __name__ == '__main__':
    while True:                                 #循环判断是否输入错误的格式
        print "××××××××××python实现万年历××××××××"
        year = raw_input("请输入年份(如:1990):")
        month = raw_input("请输入月份:如:1")
        try:                                    #捕捉输入异常格式和月份的正确
            year = int(year)
            month = int(month)
            if month <1 or month >1:            #判断月份是否输入错误,错误就重新开始循环
                print "年份或者月份输入错误,请重新输入!"
                continue
        except:                                 #捕捉到转换成整型异常,输出提示,重新开始循环
            print "年份或者月份输入错误,请重新输入!"    
            continue
        break     #如果没有异常就跳出循环
    #if is_leap_year(year):
    #    print "%s是润年"%year
    #else:
    #    print "%s是平年"%year
    #print "%s月份总共有%s天!"%(month,getMonthDays(year,month))
    print "日\t一\t二\t三\t四\t五\t六"
    iCount = 0      #计数器来判断是否换行
    for i in range(getTotalDays(year,month)%7):
        print '\t',                 #输出空不换行
        iCount+=1
    for i in range(1,getMonthDays(year,month)):
        print i,
        print '\t',
        iCount +=1
        if iCount%7 == 0 :           #计数器取余为0,换行
            print ''
Python 相关文章推荐
Python 实现简单的电话本功能
Aug 09 Python
Python类属性的延迟计算
Oct 22 Python
python数字图像处理实现直方图与均衡化
May 04 Python
关于python写入文件自动换行的问题
Jun 23 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python之修改图片像素值的方法
Jul 03 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
django使用graphql的实例
Sep 02 Python
在Python 中将类对象序列化为JSON
Apr 06 Python
python实现simhash算法实例
Apr 25 #Python
python实现DNS正向查询、反向查询的例子
Apr 25 #Python
python网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 #Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 #Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 #Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 #Python
Python time模块详解(常用函数实例讲解,非常好)
Apr 24 #Python
You might like
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
Python语法快速入门指南
2015/10/12 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python pip配置国内源的方法
2020/02/14 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
致铅球运动员广播稿精选
2014/01/12 职场文书
网上书店创业计划书
2014/01/12 职场文书
优秀小学生家长评语
2014/01/30 职场文书
静心口服夜广告词
2014/03/20 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
龙猫观后感
2015/06/09 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python