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爬虫之爬虫编写全记录
Nov 06 Python
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
python使用in操作符时元组和数组的区别分析
May 19 Python
Python中的集合类型知识讲解
Aug 19 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
python移位运算的实现
Jul 15 Python
python3.7 sys模块的具体使用
Jul 22 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
python opencv实现简易画图板
Aug 27 Python
Python更改pip镜像源的方法示例
Dec 01 Python
call在Python中改进数列的实例讲解
Dec 09 Python
python之随机数函数的实现示例
Dec 30 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
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
Javascript 类型转换方法
2010/10/24 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
利用python实现汉诺塔游戏
2021/03/01 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
中科方德软件测试面试题
2016/04/21 面试题
普通员工辞职信
2014/01/17 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
狮子林导游词
2015/02/03 职场文书
解除租赁合同协议书
2016/03/21 职场文书
导游词之天津盘山
2019/11/01 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
基于Go Int转string几种方式性能测试
2021/04/28 Golang