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 相关文章推荐
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python之py2exe打包工具详解
Jun 14 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
python如何爬取个性签名
Jun 19 Python
pycharm创建一个python包方法图解
Apr 10 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
python实现自动清理重复文件
Aug 24 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
PyTorch的Debug指南
May 07 Python
整理Python中常用的conda命令操作
Jun 15 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
php中Ctype函数用法详解
2014/12/09 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
VBScript版代码高亮
2006/06/26 Javascript
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
js确定对象类型方法
2012/03/30 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
深入浅析Python传值与传址
2018/07/10 Python
Python中安装easy_install的方法
2018/11/18 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
入职担保书范文
2014/05/21 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
捐款感谢信
2015/01/20 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
物业保安辞职信
2015/05/12 职场文书
2015年妇女工作总结
2015/05/14 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
详解thinkphp的Auth类认证
2021/05/28 PHP
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
Minikube搭建Kubernetes集群
2022/03/31 Servers