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中字典dict常用操作方法实例总结
Apr 04 Python
Python第三方库的安装方法总结
Jun 06 Python
Python 多核并行计算的示例代码
Nov 07 Python
利用python打开摄像头及颜色检测方法
Aug 03 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
python如何求圆的面积
Jul 01 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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 FPDF类库应用实现代码
2009/03/20 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
python生成九宫格图片
2018/11/19 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
期中考试后的反思
2014/02/08 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
医院合作协议书
2014/08/19 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
介绍信怎么写
2015/05/05 职场文书
表彰大会新闻稿
2015/07/17 职场文书
企业愿景口号
2015/12/25 职场文书
800字作文之大雪
2019/12/04 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB