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实现封装得到virustotal扫描结果
Oct 05 Python
Python基类函数的重载与调用实例分析
Jan 12 Python
Python中的TCP socket写法示例
May 11 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
python如何读取bin文件并下发串口
Jul 05 Python
Django结合ajax进行页面实时更新的例子
Aug 12 Python
Python celery原理及运行流程解析
Jun 13 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
python音频处理的示例详解
Dec 23 Python
Python Numpy之linspace用法说明
Apr 17 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
Python发送email的3种方法
2015/04/28 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
python opencv实现运动检测
2018/07/10 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
python图像处理入门(一)
2019/04/04 Python
python中的数据结构比较
2019/05/13 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
会计专业毕业生自荐信范文
2013/12/20 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
应聘英语教师求职信
2014/04/24 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
班主任自我评价范文
2015/03/11 职场文书
自我评价优缺点范文
2015/03/11 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
Vue监视数据的原理详解
2022/02/24 Vue.js