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中 sys.argv[]的用法简明解释
Dec 20 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
Python工厂函数用法实例分析
May 14 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
python的faker库用法
Nov 28 Python
python实现视频读取和转化图片
Dec 10 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
python 实用工具状态机transitions
Nov 21 Python
用python 绘制茎叶图和复合饼图
Feb 26 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
yii操作session实例简介
2014/07/31 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
jQuery的一些注意
2006/12/06 Javascript
Open and Print a Word Document
2007/06/15 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
python 判断自定义对象类型
2009/03/21 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Python函数参数操作详解
2018/08/03 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
培训演讲稿范文
2014/01/12 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
python opencv旋转图片的使用方法
2021/06/04 Python
python​格式化字符串
2022/04/20 Python