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 getopt模块处理命令行选项实例
May 13 Python
使用python编写android截屏脚本双击运行即可
Jul 21 Python
编程语言Python的发展史
Sep 26 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
python 剪切移动文件的实现代码
Aug 02 Python
django中forms组件的使用与注意
Jul 08 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
python 元组的使用方法
Jun 09 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
详解Python中list[::-1]的几种用法
Nov 16 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
PHP Undefined index报错的修复方法
2011/07/17 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
python 读写中文json的实例详解
2017/10/29 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
基于Python List的赋值方法
2018/06/23 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
关于numpy数组轴的使用详解
2019/12/05 Python
python中类与对象之间的关系详解
2020/12/16 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
军训教官感言
2014/03/02 职场文书
入党积极分子评语
2014/05/04 职场文书
聘用意向书
2014/07/29 职场文书
政府四风问题整改措施
2014/10/04 职场文书
安全生产月标语
2014/10/07 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
2015年女工委工作总结
2015/07/27 职场文书
学校运动会感想
2015/08/10 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android