PTA - カウント日数

画像の説明を追加してください
個人名刺:

ブロガーアルコール依存症ᝰ。
個人プロフィール:ワインに酔いしれ、お酒で未来を切り拓く。
PTAの演習と分析
導入:ブロガーが実践問題を学ぶ方法と注意点をPTAに収録。

画像の説明を追加してください

序文

1 はじめに

「PTAプログラミング実験補助教育プラットフォーム」は、浙江大学が主導し、杭州百騰教育技術有限公司が管理・運営し、全国の大学の教師が共同で構築したプログラミングコースの補助教育プラットフォームです。現在、全国の 538 の大学が参加し、3,152 人の教師が共同で 66,095 の質の高いトピックを作成し、登録学生数は 136 万人に達し、14 の固定トピック セット (C 言語、JAVA 言語、 Python 言語、データ構造、データベース システム) および中国大学コンピューター コンテストの質問バンク) と 55 の専門コースのトピック セット (コンピューター、エレクトロニクス、文学、外国語、Huawei 認定をカバー)。問題は正誤問題、穴埋め問題、多肢選択問題、多肢選択問題、プログラム穴埋め問題、関数問題、プログラミング問題、主観問題、マルチファイル プログラミングに関する質問と SQL プログラミングに関する質問。

2.利点

  • 同時に 200,000 人をオンラインでサポート
  • 複数の質問タイプをサポート
  • 多彩な判定モードに対応
  • 教育の質を包括的に保証する
  • 即時質問応答システム

1. トピック

この問題では、年間の日、月、日を計算するプログラムを作成する必要があります。

入力形式:
入力は、"yyyy/mm/dd" (つまり、"年/月/日") の形式で 1 ​​行に日付を指定します。注: うるう年の基準は、その年の年が 4 で割り切れるが 100 で割り切れない、または 400 で割り切れないことです。うるう年の 2 月は 29 日あります。
出力形式:
日付を年間通算日として 1 行に出力します。

入力サンプル 1:
2009/03/02
出力サンプル 1:
61

入力サンプル 2:
2000/03/02
出力サンプル 2:
62

コード長制限 16 KB
時間制限 400 ms
メモリ制限 64 MB

2.コード

import java.util.Scanner;
public class Main{
    
    
    public static void main(String[] args){
    
    
        Scanner sc = new Scanner(System.in);
        String time = sc.next();
        int x = 1000;
        int y = 10;
        int z = 10;
        int num = 0;
        int month = 0;
        int day = 0;
        for(int i = 0; i < 4; i++){
    
    //2009
            num = num + Integer.parseInt(String.valueOf(time.charAt(i))) * x;
            x = x / 10;
        }
        for(int i = 5; i < 7; i++){
    
    //03
            month = month + Integer.parseInt(String.valueOf(time.charAt(i))) * y;
            y = y / 10;
        }
        for(int i = 8; i < 10; i++){
    
    //02
            day = day + Integer.parseInt(String.valueOf(time.charAt(i))) * z;
            z = z / 10;
        }
        if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0){
    
    
            switch(month){
    
      
                case 1:
                    System.out.println(day);
                    break;
                case 2:
                    System.out.println(31 + day);
                    break;
                case 3:
                    System.out.println(31 + 29 + day);
                    break;
                case 4:
                    System.out.println(31 + 29 + 31 + day);
                    break;
                case 5:
                    System.out.println(31 + 29 + 31 + 30 + day);
                    break;
                case 6:
                    System.out.println(31 + 29 + 31 + 30 + 31 + day);
                    break;
                case 7:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + day);
                    break;
                case 8:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 9:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 10:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 11:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 12:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                 
            }
        }else {
    
    
            switch(month){
    
      
                case 1:
                    System.out.println(day);
                    break;
                case 2:
                    System.out.println(31 + day);
                    break;
                case 3:
                    System.out.println(31 + 28 + day);
                    break;
                case 4:
                    System.out.println(31 + 28 + 31 + day);
                    break;
                case 5:
                    System.out.println(31 + 28 + 31 + 30 + day);
                    break;
                case 6:
                    System.out.println(31 + 28 + 31 + 30 + 31 + day);
                    break;
                case 7:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + day);
                    break;
                case 8:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 9:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 10:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 11:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 12:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                 
            }
        }
        
    }
}

3. 注意事項と分析

この質問は難しくありません。基礎の理解度をテストします。
うるう年 (2 月)、別のうるう月 (30 日と 31 日) に注意してください。

おすすめ

転載: blog.csdn.net/m0_65144570/article/details/127080902