
こんにちは。今回も宜しくお願いします<(_ _)>
画面から入力された日付(生年月日)の妥当性をチェックしたいのですが、それにはまずクラス(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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaのコンパイルエラーについ...
-
プログラミングの問題です。大...
-
System.err. printlnとSystem.o...
-
InputStream.read()でタイムア...
-
VBSエラー"オブジェクト型の変...
-
変数を動的に作るには?
-
パソコンキーボードで時分秒を...
-
JSPやサーブレットでSystem.out...
-
JavaScriptの変数をjavaのメソ...
-
「配列定数は、イニシャライザ...
-
javaです
-
jspでの二次元配列
-
JButton-背景の透明化
-
VBで作った乱数を一度も重複さ...
-
C#で、あるクラスのメンバーす...
-
int型のゼロ埋め
-
createImage()を使い コンパイル
-
JavaFXでの表内のチェックボッ...
-
StrutsでJSPからListを受け取り...
-
javaで「全角が含まれているか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
プログラミングの問題です。大...
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Javaの問題について
-
初心者なので教えてほしいです。
-
Socketの接続のタイムアウトを...
-
じゃんけん プログラミング
-
Javaで日本語の出力が文字化けする
-
javaのプログラミングで作るRPG...
-
Javaでlog4jを使ってログ出力を...
-
javaに関する質問です
-
javaに関する質問です
-
javaについての質問です
-
processingである処理をした画...
-
Java プログラム public class ...
-
インタフェイス実装と抽象クラ...
-
javaでのアッカーマン関数
-
コンストラクタの引数の中のnew?
-
クラスを使った電卓のプログラム
おすすめ情報