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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python群发邮件实例代码
Jan 03 Python
Python使用django搭建web开发环境
Jun 09 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
基于Django框架的权限组件rbac实例讲解
Aug 31 Python
详解Python3 pickle模块用法
Sep 16 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
Python如何将装饰器定义为类
Jul 30 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
pyqt5打包成exe可执行文件的方法
May 14 Python
python ansible自动化运维工具执行流程
Jun 24 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性能测试工具xhprof的详解
2013/06/03 PHP
php绘制一个扇形的方法
2015/01/24 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
JS backgroundImage控制
2009/05/19 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
python求素数示例分享
2014/02/16 Python
python根据文件大小打log日志
2014/10/09 Python
python使用pymysql实现操作mysql
2016/09/13 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
极简的HTML5模版
2015/07/09 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
公务员个人自我评价分享
2013/11/06 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
运动会广播稿300字
2015/08/19 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS