BohYoh.comトップページへ

Javaによるアルゴリズムとデータ構造

戻る  

演習2-7の解答

 メソッドdayOfYear を、変数i days を使わずに実現せよ。while文を使うこと。

// 演習2-7 // 年内の経過日数を求める(while文を利用) import java.util.Scanner; class DayOfYear {     //--- 各月の日数 ---//     static int[][] mdays = {         {312831303130313130313031},    // 平年         {312931303130313130313031},    // 閏年     };     //--- 西暦year年は閏年か(閏年:1/平年:0) ---//     static int isLeap(int year) {         return (year % == && year % 100 != || year % 400 == 00;     }     //--- 西暦y年m月d日の年内の経過日数を求める ---//     static int dayOfYear(int y, int m, int d) {         while (--m != 0)             d += mdays[isLeap(y)][m-1];         return (d);     }     public static void main(String[] args) {         Scanner stdIn = new Scanner(System.in);         int    retry;                    // もう一度?              System.out.println("年内の経過日数を求めます。");         do {             System.out.print("年:");  int year  = stdIn.nextInt();    // 年             System.out.print("月:");  int month = stdIn.nextInt();    // 月             System.out.print("日:");  int day   = stdIn.nextInt();    // 日             System.out.println("年内で" + dayOfYear(year, month, day+                                "日目です。");             System.out.print("もう一度しますか(1…はい/0…いいえ):");             retry = stdIn.nextInt();         while (retry == 1);     } }


戻る