ブルーブリッジカップ時間の問題

2997 ワード

Linkは良いJavaグループの歴代の問題解です
 
時間問題の解法:
1.Excel利用
2.JavaのCalendarクラス
3.時間差テンプレート
 
1.2018ブルーブリッジカップJavaAグループ2-月曜日(Excel利用):https://blog.csdn.net/guanghuichenshao/article/details/79781039 
 
2.時間が1970.1.1以降の場合、Javaが所有するCalendarクラスを使用して日付を計算できます.
例:
2013ブルーブリッジカップJavaA組1-世紀末の週
 
世紀末の日曜日のテーマ:1999年12月31日が世界の終わりだと邪教が言ったことがある.もちろん、このデマはもう自滅していない.今后のある世纪末の12月31日は、月曜日なら…という人もいますが、面白いことに、どの世纪末の年の12月31日も月曜日ではありません!! そこで、「デマメーカー」は日曜日に変更されました......1999年の12月31日は金曜日ですが、未来のどの世紀末(xx 99年)の12月31日がちょうど日曜日(日曜日)ですか?
 
この年に回答してください(この4桁の整数だけを書いて、12月31などの余分な情報を書かないでください)
 
 
import java.util.Calendar;
import java.util.Scanner;

public class Main {

    static Scanner sc = new Scanner(System.in);
    
    public static void main(String[] args) {
        
        Calendar cal = Calendar.getInstance();
        for(int i=1999;i<=9999;i+=100) {
            cal.set(Calendar.YEAR, i);
            cal.set(Calendar.MONTH, 11);  //12 
            cal.set(Calendar.DATE, 31);
            int w=cal.get(Calendar.DAY_OF_WEEK);
            if(w==1) {      //    1、    2...    7
                System.out.println(i);
                break;
            }
        }
    }
}

 
 
 
3.時間差:ブルーブリッジカップ常試験問題板.
#include
int main()
{
    int n,y1,m1,d1,y2,m2,d2,c1,c2,i,j,k;
    int a[2][12]={{0,31,28,31,30,31,30,31,31,30,31,30},
                  {0,31,29,31,30,31,30,31,31,30,31,30}};
    scanf("%d",&n);
    for(k=1;k<=n;k++){
        scanf("%d%d%d%d%d%d",&y1,&m1,&d1,&y2,&m2,&d2);
        c1=0;c2=0;
        for(i=1;i