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实现巡检系统(solaris)示例
Apr 02 Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
python在linux系统下获取系统内存使用情况的方法
May 11 Python
python学习 流程控制语句详解
Jun 01 Python
python 自动批量打开网页的示例
Feb 21 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 Python
如何判断pytorch是否支持GPU加速
Jun 01 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
js仿淘宝商品放大预览功能
2017/03/15 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python构建XML树结构的方法示例
2017/06/30 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
英语师范专业毕业生自荐信
2013/09/21 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
运动会方阵解说词
2014/02/12 职场文书
黄金搭档广告词
2014/03/21 职场文书
人事经理岗位职责
2014/04/28 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
小学生优秀评语
2014/12/29 职场文书
承诺函范文
2015/01/21 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
合作合同协议书
2016/03/21 职场文书
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server