- PR -

今月の日付,曜日(1-31 金-土)を取得する

1
投稿者投稿内容
タマ
ベテラン
会議室デビュー日: 2004/08/08
投稿数: 56
投稿日時: 2004-10-15 22:34
年と月を入力されたらその月の日、曜日を
vectorに格納したいんです。

なにかよい方法はないでしょうか?
宜しくお願いいたします。

たとえば2004/10月 なら

vec_NITI.add = "1"
vec_YOUBI.add = "金"
vec_NITI.add = "2"
vec_YOUBI.add = "土"
・・・
vec_NITI.add = "30"
vec_YOUBI.add = "木"

みたいな感じです。
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2004-10-15 22:53
自分がやってる方法なんですが。
でもJAVAではないので、方法のひとつとして参考になれば。

・月の日数の取得方法
閏年用と非閏年用の配列を用意して、月の日数はベタに持つ。
年と月を引数として、受け取った年と月から閏年かどうか判定し、閏年なら閏年用のそうでないなら非閏年用の配列から日数を返す関数を用意する。

・曜日の算出方法
ツェラーの公式を使って、曜日を算出する


標準とかAPIとかで用意されているかもしれないですけど、
自分用のライブラリ化しているので、もっぱらこの方法でやってます。
_________________
ぼんじぃ
ベテラン
会議室デビュー日: 2004/05/21
投稿数: 70
投稿日時: 2004-10-15 23:09
一般的にはjava.util.GregorianCalendarを使うのが一番楽ではないかと思います。
タマ
ベテラン
会議室デビュー日: 2004/08/08
投稿数: 56
投稿日時: 2004-10-16 23:03
みなさん 有難うございます。

ご参考にしたうえに2005/2の日にちを取得したところ"30"とでてしまいます。
なんでなんでしょうか???


Calendar cal_now = Calendar.getInstance();
Calendar aDay = new GregorianCalendar(2005, 3, 1); // 2月
Vector vec_day = new Vector();
int int_day_max = aDay.getActualMaximum(Calendar.DAY_OF_MONTH);

System.out.println(int_day_max);
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2004-10-16 23:22
タマさん、こんにちは。

APIドキュメントには、
引用:
month の値は 0 から始まる (例: 0 は 1 月)


とありますから、new GregorianCalendar(2005, 3, 1);は
4月ですね。

[ メッセージ編集済み 編集者: Kissinger 編集日時 2004-10-16 23:22 ]
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-10-17 02:41
(勘違いしてたので削除)

[ メッセージ編集済み 編集者: Cluster 編集日時 2004-10-17 02:43 ]
よっちゃん
大ベテラン
会議室デビュー日: 2004/02/15
投稿数: 117
お住まい・勤務地: 千葉の片田舎
投稿日時: 2004-10-17 07:46
こんにちは、よっちゃんです。

以下を参考にしたら、如何でしょうか?
http://www.h3.dion.ne.jp/~sakatsu/holiday_logic.htm
1

スキルアップ/キャリアアップ(JOB@IT)