日時操作/うるう年のチェックを行う
の編集
Top
/
日時操作
/
うるう年のチェックを行う
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
AutoTicketLinkName
FrontPage
MenuBar
WikiWikiWeb
お約束
その他
その他/JavaでBeep(Bell)を鳴らすサンプルソース
その他/UnsupportedClassVersionErrorの原因及び対処法
その他/シェルに終了コードを渡す方法
システム関連
システム関連/Javaの情報を取得する
システム関連/Javaを実行するOS情報を取得する
ソート
ソート/ArrayListのソートサンプル
ソート/独自クラスでキー指定のソートサンプル
ソート/独自クラスのソートサンプル
ネットワーク
ネットワーク/HTTP(GET)サンプルソース
ファイル操作
ファイル操作/basename,dirnameのサンプル
ファイル操作/CSV取込みサンプルを作ってみた
ファイル操作/サブディレクトリ内を含むファイル一覧を取得
ファイル操作/テキストファイルの出力
ファイル操作/テキストファイルの読み込み
ファイル操作/ディレクトリ配下のファイルを削除する
ファイル操作/デフォルトのファイル文字コードを確認する
ファイル操作/デフォルトの改行コードを確認する
ファイル操作/ファイルかディレクトリかを確認する
ファイル操作/ファイルの削除
ファイル操作/ファイルを追記モード開き文字列を追加する
ファイル操作/ファイル・ディレクトリの有無(存在)確認
ファイル操作/ファイル一覧を標示する
プライバシーポリシー
変数操作
変数操作/メンバ変数の初期値はどのような値になっているか
変数操作/数値から文字列に変換するサンプルソース
変数操作/文字列から数値に変換するサンプルソース
数値操作
数値操作/数値をカンマ区切りで整形したい
数値操作/数値をカンマ区切りで整形し+記号を付けたい
数値操作/数値型の最大値・最小値
文字列操作
文字列操作/文字列が数字のみで構成されているかを確認する
文字列操作/文字列のリーバス(反転)
文字列操作/英字の大文字・小文字変換サンプル
日時操作
日時操作/DATEから年月日を抽出するサンプル
日時操作/うるう年のチェックを行う
最初にお読みください
標準入出力
標準入出力/STDOUTとSTDERRに出力する方法
標準入出力/パイプによるデータを受け取る方法
環境
環境/Eclipseで変数名なども補完できるようにする
環境/native2asciiで変換された文字列をもとに戻す
環境/UbuntuにaptコマンドでNetBeansをインストールしてみる
逆引きJavaサンプル
配列等操作
配列等操作/ArrayListのリバース(反転)サンプル
配列等操作/HashMapを使ったサンプル
#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 zero start) // System.out.println("set end of Feb: " + cal.getTime().toString()); cal.add(Calendar.DATE, +1); // System.out.println("add 1 day: " + cal.getTime().toString()); 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 year."); } } } * 実行結果 [#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 zero start) // System.out.println("set end of Feb: " + cal.getTime().toString()); cal.add(Calendar.DATE, +1); // System.out.println("add 1 day: " + cal.getTime().toString()); 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 year."); } } } * 実行結果 [#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クラスをつかってうるう年かどうかを確認するサンプルソースでした。
テキスト整形のルールを表示する
添付ファイル:
IsLeap.java
364件
[
詳細
]