首页 > 试题广场 >

计算一年中的第几天

[编程题]计算一年中的第几天
  • 热度指数:55 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解

今年的第几天?

输入年、月、日,计算该天是本年的第几天。


输入描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。


输出描述:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
示例1

输入

1990 9 20
2000 5 1

输出

263
122
#include <stdio.h>
int main() {
    int year, month, date, sum = 0;
    scanf("%d %d %d", &year, &month, &date);

    for (int i = 0; i < month; i++) {
        if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
            sum += 31;
        }
        if (i == 4 || i == 6 || i == 9 || i == 11) {
            sum += 30;
        }
        if (i == 2) {
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                sum += 29;
            }
            else {
                sum += 28;
            }
        }
    }
    sum += date;
    printf("%d", sum);
    return 0;
}

发表于 2023-07-26 21:42:06 回复(0)
#include<iostream>
#include<cstdio>

using namespace std;

int dayTable[2][13]={
	{0,31,28,31,30,31,30,31,31,30,31,30,31},
	{0,31,29,31,30,31,30,31,31,30,31,30,31}
};

bool IsLeapYear(int year){
	return(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

int main(){
	int year,month,day;
	while(scanf("%d%d%d", &year, &month, &day) != EOF){
		int number= 0;
		int row = IsLeapYear(year);
		for (int j = 0;j < month;++j){
			number += dayTable[row][j];
		}
		number += day;
		printf("%d\n",number);
	}
	return 0;
}

发表于 2022-01-11 21:40:28 回复(0)


import java.util.Scanner;

public clas***ain {

    public static void main(String[] arg***r />         Scanner sc=new Scanner(System.in);
        int year = sc.nextInt();
        int month = sc.nextInt();
        int day = sc.nextInt();
        int days = 0;
        if(month==1)
            days=day;
        else if(month==2)
            days=31+day;
        else
            {
            if(year%4==0&&year%100!=100||year%400==0)
                days=60;
            else
                days=59;
            for(int i=2;i<=month;i++){
            if (i==3||i==5||i==7||i==8||i==20||i==12)
                days+=31;
            if(i==4||i==6||i==9||i==11)
                days+=30;
            }
            if (month==3||month==5||month==7||month==8||month==20||month==12)
                days-=31;
            if(month==4||month==6||month==9||month==11)
                days-=30;
            
            days+=day;
        }
        System.out.println(day***r />     }

}
发表于 2021-11-10 15:25:43 回复(0)