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中List的sort方法指南
Sep 01 Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
总结Python编程中三条常用的技巧
May 11 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
Python深度学习之实现卷积神经网络
Jun 05 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
javascript 对象定义方法 简单易学
2009/03/22 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
js实现小时钟效果
2020/03/25 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
python实现的重启关机程序实例
2014/08/21 Python
Python运算符重载用法实例
2015/05/28 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
青年教师培训方案
2014/02/06 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
《长城》教学反思
2014/02/14 职场文书
党校学习自我鉴定
2014/02/24 职场文书
技术股份合作协议书
2014/10/05 职场文书
校长一岗双责责任书
2015/05/09 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL