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 相关文章推荐
centos 下面安装python2.7 +pip +mysqld
Nov 18 Python
Python 26进制计算实现方法
May 28 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
启动Atom并运行python文件的步骤
Nov 09 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
Python Numpy库常见用法入门教程
Jan 16 Python
tensorflow求导和梯度计算实例
Jan 23 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
python实现发送QQ邮件(可加附件)
Dec 23 Python
Python实现生成bmp图像的方法
Jun 13 Python
Python面试不修改数组找出重复的数字
May 20 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
一个MYSQL操作类
2006/11/16 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
HTML5之语义标签介绍
2016/07/07 HTML / CSS
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
护士自荐信怎么写
2013/10/18 职场文书
大学生简历的个人自我评价
2013/12/04 职场文书
司机辞职报告范文
2014/01/20 职场文书
自我反省检讨书
2014/01/23 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书