首页 > 试题广场 >

计算天数

[编程题]计算天数
  • 热度指数:5591 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

输入年月日,计算该填是本年的第几天。例如1990 20 日是1990 年的第263 天,2000 年5 月1 日是2000 年第122 天。


输入描述:
输入第一行为样例数m,接下来m行每行3个整数分别表示年月日。


输出描述:
输出m行分别表示题目所求。
示例1

输入

2
1990 9 20
2000 5 1

输出

263
122

备注:
提示:闰年:能被400 正除,或能被4 整除但不能被100整除。每年1、3、5、7、8、10 、12为大月
import datetime
n = int(input())
for i in range(n):
    [y,m,p(int, input().split())
    print((datetime.datetime(y,m,d)-datetime.datetime(y,1,1)).days + 1)
编辑于 2021-02-03 21:01:02 回复(0)
import datetime
for _ in range(int(input())):
    y, m, d = map(int, input().split())
    today = datetime.datetime(y, m, d)
    day0 = datetime.datetime(y, 1, 1)
    days = today-day0
    print(days.days+1)



编辑于 2019-09-29 18:45:46 回复(0)
while True:
    try:
        m=int(input().strip())
        def isrunnian(i):
            if i%4==0 and i%100!=0:
                return True
            elif i%400==0:
                return True
            else:
                return False
        list1=[31,28,31,30,31,30,31,31,30,31,30,31]
        list2=[31,29,31,30,31,30,31,31,30,31,30,31]
        for i in range(m):
            inp=list(map(int,input().strip().split(' ')))
            year=inp[0]
            month=inp[1]
            day=inp[2]
            if isrunnian(year):
                result=sum(list2[:month-1])+day
            else:
                result=sum(list1[:month-1])+day
            print(result)
    except:
        break
发表于 2019-08-21 00:27:32 回复(0)

python解法

3行:

import datetime
for i in range(int(input())):
    print(datetime.datetime(*map(int, input().split())).strftime("%j").lstrip("0"))

5行:

import datetime
for i in range(int(input())):
    a, b, c = map(int, input().split())
    dd = datetime.datetime(a, b, c)
    print(dd.strftime("%j").lstrip("0"))
发表于 2019-04-03 22:51:50 回复(0)