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编程实现语音控制电脑
Apr 01 Python
介绍Python中几个常用的类方法
Apr 08 Python
Python中字符串的处理技巧分享
Sep 17 Python
python处理xml文件的方法小结
May 02 Python
python统计中文字符数量的两种方法
Jan 31 Python
Python实现Linux监控的方法
May 16 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
基于python和flask实现http接口过程解析
Jun 15 Python
Python 如何调试程序崩溃错误
Aug 03 Python
python 实现有道翻译功能
Feb 26 Python
python 中的jieba分词库
Nov 23 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 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
酒店实习个人鉴定
2013/12/07 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
书香校园建设方案
2014/05/02 职场文书
高中校园广播稿
2014/10/21 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
珍爱生命主题班会
2015/08/13 职场文书