1579 - 计算天数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

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

2000 日是2000 年第122 天。(闰年:能被400 正除,或能被整除但不能被100

整除。每年1357810 为大月)

题目输入

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

题目输出

输出m行分别表示题目所求。

输入/输出样例

输入格式

2
1990 9 20
2000 5 1

输出格式

263
122

C语言解答

#include <stdio.h>
int main(){
	int mm;
	int y,m,d;
	int sum;
	int tmp;
	int num[12] = {0,31,28,31,30,31,30,31,31,30,31,30}; 
	scanf("%d",&mm);
	while (mm--)
	{
		scanf("%d%d%d",&y,&m,&d);
		sum = d;
		if (y%400==0||(y%4==0&&y%100!=0))
		{
			num[2] = 29;
		}
		else
		{
			num[2] = 28;
		}
		for (int i = 1;i<m;i++)
		{
			sum = sum + num[i];
		}
		printf("%d\n",sum);
	}
}

C++解答

#include <iostream>
#include <cstdio>
using namespace std;

int month[13]= {0,31,0,31,30,31,30,31,31,30,31,30,31};

int check(int y) {
    if (y % 100 == 0)
        return y % 400 == 0;
    else
        return y % 4 == 0;
}

int main()
{
    //freopen("test.in", "r", stdin);
    //freopen("test.out", "w", stdout);
    int y, m, d, t;
    cin >> t;
    while (t--) {
        int sum = 0;
        cin >> y >> m >> d;
        month[2] = check(y) + 28;
        for(int i = 1; i < m; i++)
            sum = sum + month[i];
        sum = sum + d;
        cout << sum << endl;
    }
    return 0;
}

Java解答

import java.io.*;
import java.util.*;

public class Main
{
  public static void main(String g[])throws Exception
  {
    int t,y,m,d,sum;
    Scanner cin= new Scanner(System.in);
    
    t=cin.nextInt();
    for(int i=0;i<t;i++)
    {
      sum=0;
      y=cin.nextInt();
      m=cin.nextInt();
      d=cin.nextInt();
      for(int j=1;j<m;j++)
      switch(j)
      {
        case 1:
        sum+=31;
        break;
        
        case 2:
        if((y%4==0&&y%100!=0)||y%400==0)
          sum+=29;
        else sum+=28;
        break;
        
        case 3:
        sum+=31;
        break;
        
        case 4:
        sum+=30;
        break;
        
        case 5:
        sum+=31;
        break;
        
        case 6:
        sum+=30;
        break;
        
        case 7:
        sum+=31;
        break;
        
        case 8:
        sum+=31;
        break;
        
        case 9:
        sum+=30;
        break;
        
        case 10:
        sum+=31;
        break;
        
        case 11:
        sum+=30;
        break;
        
        case 12:
        sum+=31;
        break;
      }
      System.out.println(sum+d);
    }
  }
}