こんにちは。今回も宜しくお願いします<(_ _)>
画面から入力された日付(生年月日)の妥当性をチェックしたいのですが、それにはまずクラス(API)をわかっていなくてはいけないと思い、お試しで作ったものが、私の想像していた通りに動きません。
import java.util.*;
public class Test {
public static void main(String[] args) {
int year;
int month;
int day;
GregorianCalendar g = new GregorianCalendar();
year = g.get( Calendar.YEAR );
month = g.get( Calendar.JUNE );
day = g.get( Calendar.DATE );
System.out.println("year = " + year);
System.out.println("month = " + month);
System.out.println("day = " + day);
}
}
上記のソースを実行すると、
C:\WINDOWS\デスクトップ\カレンダ>java Test
year = 2003
month = 3
day = 3
となります。月の指定はCalendar.JUNEとしているのに、どうして3と表示されるのでしょうか?
あともう一つ質問なのですが、GregorianCalendarに自分の好きな年月を与えたいのですが、
g.get( 1980 );
とすると実行時にArrayIndexOutOfBoundsExceptionのエラーがでます。
GregorianCalendarを使って任意の年月を渡すことは無理なんでしょうか?
私が最初考えたのが、画面から入力された値をそのままGregorianCarendarに渡して、もしもその時にエラーがでたらそれは妥当ではなかった値(閏年じゃないのに2月29日と入力したり、とか)として、画面にて再入力を促すメッセージをだそうと思っていたのですが、この考え方はどこか変でしょうか?
お手数お掛けいたしますが、宜しくお願い致します<(_ _)>
No.1ベストアンサー
- 回答日時:
> year = g.get( Calendar.YEAR );
> month = g.get( Calendar.JUNE );
> day = g.get( Calendar.DATE );
どういう動作を期待しているのかわかりませんが、月を取得したいのなら
month = g.get( Calendar.MONTH );
です。これを実行すると、次の疑問が出るでしょう。「11月なのに"10"が出てくる!」と。これはAPIの仕様で、1月は"0"、2月は"1"、……、12月は"11"になっているのです。
>GregorianCalendarに自分の好きな年月を与えたいのですが、
>g.get( 1980 );
>とすると
与えるメソッドはget()ではなくてset()です。APIリファレンスをよく見てください。
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
回答ありがとうございました。
うーん、お恥ずかしいことにgetとsetを混同していました。
month = g.get( Calendar.JUNE );
は、Calendar.JUNE (6月)をオブジェクトに関連付けてから、monthに代入しているつもりになっていました。
setを使ってCalendar.JUNE を関連付けたところ、getメソッドできちんと「5」が返ってきました。
アホなこと質問して申し訳ありませんでした。
No.2
- 回答日時:
どうも、こんにちは。
質問の題名にかいてあることですが、うるう年かどうかを判定したいのでしょうか?GregorianCalendarクラスのisLeapYear()メソッドではんていできますよ。
isLeapYearの引数に年を入れてやるといいです。
質問文に書いてあることは、#1さんが答えてくれているみたいなんで。
では、大変でしょうけど、がんばってください。
お忙しいところお手数おかけして申し訳ありません。
今、自分の質問とAPIを見比べて「ちゃんと見ろやー!」と叫んでおります。
すっごい勘違いしておりました。
とても恥ずかしいです。
>isLeapYearの引数に年を入れてやるといいです。
ありがとうございます。
>では、大変でしょうけど、がんばってください。
簡単なことを1人で難しくしている、という感じもしますが、頑張りたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を動的に利用するには?
-
プログラミングの問題です。大...
-
java キーボード入力された値の...
-
1~100までの数字を表示し、か...
-
BOOL値を逆にしたい
-
エクセルVBAで「〜」が表現でき...
-
Java配列でNullPointerExceptio...
-
パソコンキーボードで時分秒を...
-
IF関数でEmpty値を設定する方法。
-
コマンドライン引数の例外処理...
-
C++、クラスメンバの構造体配列...
-
共有メモリについて
-
Arduino(C言語) String "1101" ...
-
Java配列の問題を教えてくださ...
-
TextAreaでの文字の色
-
JAVAのfor文で困っています。
-
VBAで配列の計算
-
ボタンの複数割り当てについて
-
変数を動的に作るには?
-
[JAVA]try 内の変数を外で!?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
プログラミングの問題です。大...
-
NoSuchMethodErrorが解決できま...
-
Javaでlog4jを使ってログ出力を...
-
System.exit()の値を取得したい
-
コンストラクタの引数の中のnew?
-
Javaで日本語の出力が文字化けする
-
インタフェイス実装と抽象クラ...
-
randomで
-
Java プログラム public class ...
-
日本語が文字コードによっては...
-
Socketの接続のタイムアウトを...
-
GetterとSetterをやったのに。
-
javaで特定の文字列から特定の...
-
JSP/Servletのパラメータの受け...
-
(1)を表示するには
-
【初心者です】javaで平均値を...
-
javaのプログラミングで作るRPG...
-
【java】同ディレクトリ別ファ...
おすすめ情報