Python3 输入日期显示星期几

import time
import traceback
def findLen(str):
    counter = 0
    while str[counter:]:
        counter += 1
    return counter
def is_valid_date(str_date):
    ‘‘‘判断是否是一个有效的日期字符串‘‘‘
    try:
        time.strptime(str_date, "%Y%m%d")
        return True
    except Exception:
        # traceback.print_exc()
        raise Exception("时间参数错误 near : {}".format(str_date))

#print("20180101是星期一,作为参考日期")
#jisuan_riqi = input("请输入你要计算的日期(20180101):")
year=eval(input("请输入年:"))
month=eval(input("请输入月:"))
day=eval(input("请输入日:"))
jisuan_riqi=str(year)+str(month)+str(day)
jisuan=str(year)+‘/‘+str(month)+‘/‘+str(day)
if(is_valid_date(jisuan_riqi)):
#平年每月天数
    month_list1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
#闰年每月天数
    month_list2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

# 输入的年份大于等于2018年
    if year >= 2018:
        year_days = 0
        for i in range(2018, year):
        # 先做出一个判断,判断年份是否是闰年
            if (i % 4 == 0 & (i % 100 != 0)) | (i % 400 == 0):
                year_days += 366#闰年
            else:
                year_days += 365#平年
        month_days = 0
        day_days=0
        if ((year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0):
            for j in range(month - 1):
                month_days += month_list2[j]
        else:
            for j in range(month - 1):
                month_days += month_list1[j]

        total_days = year_days + month_days + day

    # 相差天数与7取余,+1表明余数为0是周一
        xingqi = (total_days - 1) % 7 + 1
        print("你输入的日期 %s" % jisuan_riqi, "是周", xingqi)

# 输入的年份小于2018年
    else:
    # 计算2018年之前的日期时,先将2018的一天作为初始,加入到总天数中
        year_days = 1
        for i in range(2017, year, -1):
            # 先做出一个判断,判断年份是否是闰年,在对其进行天数的计算
            if (i % 4 == 0 & (i % 100 != 0)) | (i % 400 == 0):
                year_days += 366
            else:
                year_days += 365
        month_days = 0
        if (year % 4 == 0 & (year % 100 != 0)) | (year % 400 == 0):
            for j in range(11, month - 2, -1):
                month_days += month_list2[j]
        else:
            for j in range(11, month - 1, -1):
                month_days += month_list1[j]
        total_days = year_days + month_days - day
        if (total_days) % 7 == 0:
            xingqi = (total_days) % 7 + 1
        else:
            # 余数为1是周7,余数为2是周6,所以8-余数
            xingqi = 8 - (total_days) % 7
        print("你输入的日期 %s" % jisuan_riqi, "是周", xingqi)

原文地址:https://www.cnblogs.com/zmh-980509/p/12569310.html

时间: 2024-11-12 16:00:22

Python3 输入日期显示星期几的相关文章

输入日期显示星期几

输入时间获取对应的日期是星期几 package test1; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public clas

inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几

inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几: //inputs a date (e.g. July 4, 2008) and outputs the day of the week #include<iostream> #include<string> using namespace std; bool leapyear; void getInput(string&

C++ 实现判断一个输入日期是星期几,是一年中的第几天

/* 通过输入年月日,计算出这一天是星期几,计算这一天是这一年的多少天,判断这一年是否为闰年 */ #include<iostream> using namespace std; struct time { int year; int month; int day; unsigned int weekday; }; void initialtime(time & t);//输入初始化时间 void Show(time & t);//显示时间信息 int Weekdaycount

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,'

EXCEL 函数----choose()妙用显示将日期换算成星期

年后第一篇博文,和大家分享一下choose函数的妙用.首先大家看下图: A列是一些日期,我需要在B列和C列显示A列的日期是星期几,其实B列和c列只是中英文的问题.提取日期的星期代码我们需要用weekday()  ,即weekday(A1,2) 返回的是星期的序列,其中参数2是一周从周一开始,如果是从周日开始就是1,当然这个不是重点.我们的重点是choose函数. 我们在B2单元格中输入 =CHOOSE(WEEKDAY(A2,2),"星期一","星期二","

输入一个日期,输出该日期是星期几

假定输入日期合法正确. 先找一个参考日期,找星期天的日期为最好.我一时没想到就选了今天,星期一,也不错.然后求出输入日期与参考日期之间间隔的天数n,n为负时则表示输入日期在参考日期之前,n为正时则表示输入日期在参考日期之后.因为星期为循环星期1到星期天,又根据补码的原理,可知n = ((n % 7) +  8) % 7, 此时的n为几则是星期几.(PS:星期天用0来表示,因为我选的是参考日期是星期一所以是+8,如果选的是星期天则是+7). 1 //给定一个日期,求这个日期是星期几? 2 #inc

题目1043:Day of Week(输入日期与当前日起天数差%7,在做相关星期调整)

题目描述: We now use the Gregorian style of dating in Russia. The leap years are years with number divisible by 4 but not divisible by 100, or divisible by 400.For example, years 2004, 2180 and 2400 are leap. Years 2004, 2181 and 2300 are not leap.Your t

C# 怎么显示中文格式的日期、星期几

//该语句显示的为英文格式DateTime.Now.DayOfWeek.ToString(); //显示中文格式星期几 "星期" + DateTime.Now.ToString("ddd",new System.Globalization.CultureInfo("zh-cn")); //显示中文格式的日期DateTime.Now.ToLongDateString(); // 显示格式为"2008年1月1日"DateTime.

制作可视化日历,输入日期得到当月 月历表

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; /** * 制作可视化日历,输入日期得到当月 月历表 * */ public class CalendarDemo { public static voi