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中的With语句
Feb 02 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
Numpy之random函数使用学习
Jan 29 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
Python tkinter模版代码实例
Feb 05 Python
python实现全排列代码(回溯、深度优先搜索)
Feb 26 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
python IDLE添加行号显示教程
Apr 25 Python
Python类及获取对象属性方法解析
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调用数据库的存贮过程
2006/10/09 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Windows下python3.7安装教程
2018/07/31 Python
python实现括号匹配的思路详解
2018/08/23 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
高考考python编程是真的吗
2020/07/20 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
应届生高等护理求职信
2013/10/12 职场文书
美德少年事迹材料
2014/01/23 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
数学教学随笔感言
2014/02/17 职场文书
党委班子剖析材料
2014/08/21 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis