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实现得到一个给定类的虚函数
Sep 28 Python
Windows下安装python2.7及科学计算套装
Mar 05 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
python操作mysql数据库
Mar 05 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
python实现的自动发送消息功能详解
Aug 15 Python
wxPython实现分隔窗口
Nov 19 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
python爬取微博评论的实例讲解
Jan 15 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 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 无线电
回帖脱衣服的图片实现代码
2014/02/15 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
十分钟搞定pandas(入门教程)
2019/06/21 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
通过实例解析Python调用json模块
2019/12/11 Python
省级优秀班集体申报材料
2014/05/25 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
java解析XML详解
2021/07/09 Java/Android
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
vue如何清除浏览器历史栈
2022/05/25 Vue.js