首页 > 其他分享 >4.输入某年某月某日,判断这一天是这一年的第几天?

4.输入某年某月某日,判断这一天是这一年的第几天?

时间:2024-09-10 22:03:20浏览次数:1  
标签:return 第几天 某日 days month year 某年某月 day

【程序 4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几
天,特殊
情况,闰年且输入月份大于 3 时需考虑多加一天。
2.程序源代码:
def is_leap_year(year):
    return (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0))


def day_of_year(year, month, day):
    months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)

    if not (1 <= month <= 12):
        print('data error: month should be between 1 and 12')
        return

    if not (1 <= day <= 31):
        print('data error: day should be between 1 and 31')
        return

    sum_days = months[month - 1] + day

    if is_leap_year(year) and month > 2:
        sum_days += 1

    return sum_days


# 获取用户输入
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))

# 计算并输出结果
result = day_of_year(year, month, day)
if result is not None:
    print('it is the %dth day.' % result)

方法二:

def is_leap_year(year):
    """判断是否是闰年"""
    if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
        return True
    return False

def days_in_month(year, month):
    """返回给定年月的天数"""
    if month == 2:
        if is_leap_year(year):
            return 29
        else:
            return 28
    elif month in [4, 6, 9, 11]:
        return 30
    else:
        return 31

def day_of_year(year, month, day):
    """返回给定日期是这一年的第几天"""
    total_days = 0
    for m in range(1, month):
        total_days += days_in_month(year, m)
    total_days += day
    return total_days

# 示例用法
year = 2024
month = 9
day = 10
print(f"{year}年{month}月{day}日是这一年的第{day_of_year(year, month, day)}天")

  

    

标签:return,第几天,某日,days,month,year,某年某月,day
From: https://www.cnblogs.com/liu-zhijun/p/18407314

相关文章

  • 【每周例题】力扣 C++ 一年中的第几天
    一年中的第几天题目一年中的第几天 思路分析1.substr函数分割字符串,stoi函数将字符串转为十进制stoi函数介绍substr函数介绍2.判断是否为闰年,如果是闰年,则二月的天数+1代码#include<bits/stdc++.h>usingnamespacestd;intmain(){ intmonths[13]={0,31,28,3......
  • 计算今天是该年的第几天(c语言实现)
    遇到一个有意思的编程题,使用C语言实现计算今天是该年的第几天。实现代码如下:#include<stdio.h>intd[12]={31,28,31,30,31,30,31,31,30,31,30,31};//将每月天数存在数组中(类似字典)intadd(intmonths,intflag,intdays)//计算天数{intnum=0,i=0;if(flag>0)//......
  • C语言之计算某日是该年的第几天
    目录一简介二代码实现三时空复杂度一简介 在C语言中,计算某日是该年的第几天通常涉及以下步骤:判断输入的年份是否为闰年。根据判断结果,确定当年二月的天数(28或29天)。然后,根据月份从前几个月开始累计天数。二代码实现以下是一个简单的C语言函数示例,它接收一......
  • Java解决一年中的第几天
    Java解决一年中的第几天01题目给你一个字符串date,按YYYY-MM-DD格式表示一个现行公元纪年法日期。返回该日期是当年的第几天。示例1:输入:date="2019-01-09"输出:9解释:给定日期是2019年的第九天。示例2:输入:date="2019-02-10"输出:41提示:date.length=......
  • 【教3妹学编程-算法题】一年中的第几天
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥 :3妹,什么事呀这么开森。3妹:2哥你看今天的天气多好啊,经过了一周多的寒潮,天气总算暖和些了。2哥:是啊,都说一九二九不出手,三九四九冰上走,这才一九就已经可以冰上走了。3妹:上海这边虽然也挺冷了,但是还算好,想想北方都已经......
  • 写于身心俱疲的却仍还想坚持一下某日
    ******碎碎念****** 如果说自己在什么时候会特别羡慕别人呢,那大概就是看到一些永远精力满满的人时。近来身体感觉真的越来越弱,前段时间吃药时大概连续很多天都没怎么说过话,讲话提气耗气太累了,过后也没怎么养好,最近依旧极虚。但是说来其实也不是读研的这些日子造成的,好像一直也......
  • 获取任意时间的某日期
    今天刷哔哩哔哩无意中打开了投稿管理,发现上面显示着已加入哔哩哔哩1994天,看着上面的数字感觉到时间过了好快啊。心里顿时有个想法,想知道加入的这一天是某年某月某日,心想着翻开日历一下一下去翻,但是感觉这样实在是太笨了。我顿时想着写一个程序去判断一下1994天前是某年的哪一......
  • 一年中的第几天
    给你一个字符串date,按YYYY-MM-DD格式表示一个现行公元纪年法日期。返回该日期是当年的第几天。示例1:输入:date="2019-01-09"输出:9解释:给定日期是2019年的第九天。示例2:输入:date="2019-02-10"输出:41截取标记每个月和特殊的闰月classSolution{publicint......
  • Java 获取当前天是一年中的第几天
    Java获取当前天是一年中的第几天@Testvoiddayofweed()throwsException{System.out.println("2023-01-01第"+getWeekYearISO("2023-01-01"));System.out.println("2023-08-01第"+getWeekYearISO("2023-08-01"));}public......
  • 【每日一题】LeetCode 1185.一周中的第几天
    题目给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month和year,分别表示日、月、年。您返回的结果必须是这几个值中的一个{“Sunday”,“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”}。示例输入:day=31,......