日時操作/うるう年のチェックを行う
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* うるう年のチェックを行う [#i8b4118f]
Calendarクラスを使って、引数で指定した年-2月-28日を設...
Calendarクラスのaddメソッドで+1日します。~
一日加算したCalendarオブジェクトの月を確認し2月のままの...
3月になっていれば、うるう年ではない判定を行っています。~
(計算式で求める方が簡単だと思いますが…)~
以下にサンプルソースおよび実行結果を記します。
#contents
* うるう年確認のサンプルソース [#f66d3979]
本サンプルソースは、実行時にチェックしたい年を引数として...
java IsLeap 年
のようになります。~
以下にサンプルソースを記します。~
&ref(IsLeap.java); LF
import java.util.Calendar;
class IsLeap {
public static void usage(String[] args) {
if (args.length != 1) {
System.err.println("usage: java isleap <Year...
System.exit(1);
}
if (!isNum(args[0])) {
System.err.println(args[0] + " is not number...
System.exit(2);
}
}
private static boolean isNum(String s) {
boolean b = true;
try {
Integer.parseInt(s);
} catch (NumberFormatException e) {
b = false;
}
return b;
}
public boolean isLeap(int year) {
Calendar cal = Calendar.getInstance();
cal.set(year, 1, 28); //year/2/28 (month is ze...
// System.out.println("set end of Feb: " + cal.ge...
cal.add(Calendar.DATE, +1);
// System.out.println("add 1 day: " + cal.getTime...
if (cal.get(Calendar.MONTH)+1 == 3) {
return false;
}
return true;
}
public static void main(String[] args) {
usage(args);
IsLeap me = new IsLeap();
boolean leap = me.isLeap(Integer.valueOf(args[0]...
if (leap) {
System.out.println(args[0] + " is leap year....
} else {
System.out.println(args[0] + " is *not* leap...
}
}
}
* 実行結果 [#gec2f74d]
以下にコンパイルおよび実行結果を記します。
+ コンパイルします。
$ javac IsLeap.java
+ 引数なしで実行すると、Usageが表示されます。
$ java IsLeap
usage: java isleap <Year>
+ 2016, 2017を引数に渡して実行した時の結果です。
$ java IsLeap 2016
2016 is leap year.
$ java IsLeap 2017
2017 is *not* leap year.
+ 2016年から2025年までの出力です。
$ for Y in `seq 2016 2025`
> do
> java IsLeap $Y
> done
2016 is leap year.
2017 is *not* leap year.
2018 is *not* leap year.
2019 is *not* leap year.
2020 is leap year.
2021 is *not* leap year.
2022 is *not* leap year.
2023 is *not* leap year.
2024 is leap year.
2025 is *not* leap year.
以上、Calendarクラスをつかってうるう年かどうかを確認する...
終了行:
#navi(../)
* うるう年のチェックを行う [#i8b4118f]
Calendarクラスを使って、引数で指定した年-2月-28日を設...
Calendarクラスのaddメソッドで+1日します。~
一日加算したCalendarオブジェクトの月を確認し2月のままの...
3月になっていれば、うるう年ではない判定を行っています。~
(計算式で求める方が簡単だと思いますが…)~
以下にサンプルソースおよび実行結果を記します。
#contents
* うるう年確認のサンプルソース [#f66d3979]
本サンプルソースは、実行時にチェックしたい年を引数として...
java IsLeap 年
のようになります。~
以下にサンプルソースを記します。~
&ref(IsLeap.java); LF
import java.util.Calendar;
class IsLeap {
public static void usage(String[] args) {
if (args.length != 1) {
System.err.println("usage: java isleap <Year...
System.exit(1);
}
if (!isNum(args[0])) {
System.err.println(args[0] + " is not number...
System.exit(2);
}
}
private static boolean isNum(String s) {
boolean b = true;
try {
Integer.parseInt(s);
} catch (NumberFormatException e) {
b = false;
}
return b;
}
public boolean isLeap(int year) {
Calendar cal = Calendar.getInstance();
cal.set(year, 1, 28); //year/2/28 (month is ze...
// System.out.println("set end of Feb: " + cal.ge...
cal.add(Calendar.DATE, +1);
// System.out.println("add 1 day: " + cal.getTime...
if (cal.get(Calendar.MONTH)+1 == 3) {
return false;
}
return true;
}
public static void main(String[] args) {
usage(args);
IsLeap me = new IsLeap();
boolean leap = me.isLeap(Integer.valueOf(args[0]...
if (leap) {
System.out.println(args[0] + " is leap year....
} else {
System.out.println(args[0] + " is *not* leap...
}
}
}
* 実行結果 [#gec2f74d]
以下にコンパイルおよび実行結果を記します。
+ コンパイルします。
$ javac IsLeap.java
+ 引数なしで実行すると、Usageが表示されます。
$ java IsLeap
usage: java isleap <Year>
+ 2016, 2017を引数に渡して実行した時の結果です。
$ java IsLeap 2016
2016 is leap year.
$ java IsLeap 2017
2017 is *not* leap year.
+ 2016年から2025年までの出力です。
$ for Y in `seq 2016 2025`
> do
> java IsLeap $Y
> done
2016 is leap year.
2017 is *not* leap year.
2018 is *not* leap year.
2019 is *not* leap year.
2020 is leap year.
2021 is *not* leap year.
2022 is *not* leap year.
2023 is *not* leap year.
2024 is leap year.
2025 is *not* leap year.
以上、Calendarクラスをつかってうるう年かどうかを確認する...
ページ名: