随机输入日期计算星期几(1900年1月1日为基础)

已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几

代码如下(未改进),欢迎批评指正

year=int(input(‘year‘))
month=int(input(‘month‘))
day=int(input(‘day‘))
if year >=1900:#大于等于1900
    ryear =1900
    sum =0
    while ryear < year:#1901
        if ((ryear % 4 == 0) and (ryear %100 !=0))or(ryear % 400 == 0):#云年
            sum+=2
        else:
            sum+=1
        ryear+=1
    #计算月份移动
    mon = month
    r_month = 1
    while r_month < month:#计算到mon月份1号
        if r_month in [1,3,5,7,8,10,12]:
            sum +=3
            sum = sum % 7
        elif r_month in [4,6,9,11]:
            sum +=2
        else:
            if (year % 4 == 0 and year %100 != 0) or (ryear % 400 == 0):
                sum +=1
            else:
                sum +=0
        r_month+=1
    #计算天
    sumday = day -1
    sum+=sumday
    sum = sum % 7
    #根据移动进行判断
    if sum ==1:
        print(‘星期2‘)
    elif sum ==2:
        print(‘星期3‘)
    elif sum ==3:
        print(‘星期4‘)
    elif sum ==4:
        print(‘星期5‘)
    elif sum ==5:
        print(‘星期6‘)
    elif sum ==6:
        print(‘星期7‘)
    else:
        print(‘星期1‘)
else:#计算小于1990年
    ye = year
    year +=1
    sum = 0
    while year<1900:
        if (year % 4 == 0 and year %100 !=0) or(year % 400 == 0):#闰年
            sum+=2
        else:
            sum +=1
        year+=1
    #计算月份移动
    mo=month
    month =month+1
    while month <=12:#计算到mon月份1号
        if month in [1,3,5,7,8,10,12]:
            sum +=3
        elif month in [4,6,9,11]:
            sum +=2
        else:
            if (year % 4 == 0 and year %100!=0) or(year % 400 == 0):
                sum +=1
            else:
                sum +=0
        month+=1
    #计算天
    if mo in [1,3,5,7,8,10,12]:
        sum += 31-day+1
    elif mo in [4,6,9,11]:
        sum += 30-day+1
    else:
        if (year % 4 == 0 and year %100 !=0) or (year % 400 == 0):
            sum += 29-day+1
        else:
            sum += 28-day+1
    sum = sum % 7
    #根据移动进行判断
    if sum ==1:
        print(‘星期7‘)
    elif sum ==2:
        print(‘星期6‘)
    elif sum ==3:
        print(‘星期5‘)
    elif sum ==4:
        print(‘星期4‘)
    elif sum ==5:
        print(‘星期3‘)
    elif sum ==6:
        print(‘星期2‘)
    else:
        print(‘星期1‘)
print(‘game over‘)

星期几

原文地址:https://www.cnblogs.com/rain-chenwei/p/rain_fall_in_love_with_python.html

时间: 2024-11-10 08:24:41

随机输入日期计算星期几(1900年1月1日为基础)的相关文章

2.给出距离1900年1月1日的天数,求日期

1 #include <iostream> 2 #include <assert.h> 3 4 5 //判断是否闰年 6 bool IsLeapYear(unsigned int year) 7 { 8 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) 9 { 10 return true; 11 } 12 else 13 { 14 return false; 15 } 16 } 17 18 //根

PHP 日期格式化和日期计算以及获取当前周、月头尾日期

PHP 日期格式化和日期计算以及当获取前周.月头尾日期 PHP 日期格式化示例代码: /** * 格式化时间 * $type:类型 * $strDate:需要处理的时间字符串 * * 年份 Y:四位年份 y:两位年份 * 月份 m: 两位数字月份 n: 一位数字月份 M:英文月 * 日期 d:两位数字日期 j:一位数字日期 D:英文日期 * 时:H .分:i .秒:s **/ public function GetFormatDate($type = 1,$strDate=''){ $time

java为啥计算时间从1970年1月1日开始

http://www.myexception.cn/program/1494616.html ---------------------------------------------------------- java为什么计算时间从1970年1月1日开始 今天在看Python  API 时,看到 time 模块 : The epoch is the point where the time starts. On January 1st of that year, at 0 hours,the

oracle根据日期计算星期几

工作中用到的,在存储过程中的语句,简单记下: /** 判断输入日期是星期几 */ select decode(to_char(to_date(iv_date,'yyyy-mm-dd'), 'day'),'星期一','1','星期二','2','星期三','3','星期四','4','星期五','5','星期六','6','7') into vi_weeknum from dual; /** 计算离输入日期最近的星期一的日期 */ select to_char((to_date(iv_date,'

js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子

JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var day = theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year= day.getFullYear();// ie火狐下都可以 Month= day.getMonth()

C# 根据日期计算星期几

1 region 根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);) 2 /// <summary> 3 /// 根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);) 4 /// </summary> 5 /// <param name="y">年</param> 6 /// <param name="m">

求当前时间100天后的时间日期,格式化为xxxx年xx月xx日

package com.demo1; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Demo9 { public static void main(String[] args) { Date date=new Date(); System.out.println(getDate(date,100)); } public static String

求出某一天是那一年的第几星期,比如2008年1月8日?

题目7: 2008年1月8日是那年中的第几星期?(视频下载) (全部书籍) 本章源码 import java.util.*;public class Test {    public static void main(String[] args) {        Date date;        Calendar cal=Calendar.getInstance();        cal.set(Calendar.YEAR, 2008);        cal.set(Calendar.M

sql中文日期格式转换(xxxx年x月x日)

declare @dd nvarchar(50) set @dd='2014年10月1日' select replace(replace( replace(@dd,'日',''),'月','-'),'年','-') 别人的方法 DECLARE @a VARCHAR(30)='2012年10月13日' SELECT SUBSTRING(@a,0,CHARINDEX('年',@a))+'-'+SUBSTRING(@a,CHARINDEX('年',@a)+1,CHARINDEX('月',@a)-CHA