• 締切済み

曜日の取得方法を教えて下さい!

JAVA初心者です。 ある日の曜日を取得したいのですが、うまく出来ません。 Calendarやら、DAY_OF_WEEKやらを使うと聞いたのですが、 どう記述すればいいのか全然分かりません。 やってもエラーばかり・・・。 例えば、2001年3月1日の曜日を取得するには、どうすればいいのでしょうか? どうかよろしくお願いします! 開発環境は、JDK1.3です。

  • Java
  • 回答数2
  • ありがとう数8

みんなの回答

  • snnk
  • ベストアンサー率60% (3/5)
回答No.2

シンボルを解釈処理できません。 シンボル:変数 Calendar 位置  :calendar の クラス とでるのは、対象となるクラスが見つからないからだと思います。 Calendarクラスは、java.utilパッケージ内にあるので、 そこをインポートすれば解消されると思います。 import java.util.*;

  • snnk
  • ベストアンサー率60% (3/5)
回答No.1

Java2SDKドキュメントは御覧になったことがあるのでしょうか? 見れば一目瞭然だと思います。 オンラインだと参照に載せたとおりです。 (ダウンロードしてオフラインでも使えます。) それでは本題に。。。 質問にあるとおりCalendarオブジェクトを実装します。 そして、DAY_OF_WEEKも使用します。 // まず、GregorianCalendarを使用してCalendarオブジェクトを実装します。この時、月は-1して指定します。 Calendar calendar = new GregorianCalendar(2001, 2, 1); // Calendarオブジェクトからgetメソッドを使用して、曜日フィールドに格納されている値を取得します。 switch (calendar.get(Calendar.DAY_OF_WEEK)){ // 取得した曜日フィールドの値と各曜日を表す値を比較して曜日を得ます。 case Calendar.SUNDAY: System.out.println("日曜日です。"); break; case Calendar.MONDAY: System.out.println("月曜日です。"); break; case Calendar.TUESDAY: System.out.println("火曜日です。"); break; case Calendar.WEDNESDAY: System.out.println("水曜日です。"); break; case Calendar.THURSDAY: System.out.println("木曜日です。"); break; case Calendar.FRIDAY: System.out.println("金曜日です。"); break; case Calendar.SATURDAY: System.out.println("土曜日です。"); break; }

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html
oshiete_katsu
質問者

お礼

出来ました! 本当に感謝してます。 ありがとうございました!!! また、何かあればよろしくお願いします!

oshiete_katsu
質問者

補足

ありがとうございました! で、早速してみたのですが、なぜかエラーがいっぱい出ます・・・。 シンボルを解釈処理できません。 シンボル:変数 Calendar 位置  :calendar の クラス と出ます。 なぜでしょうか・・・。

関連するQ&A

  • 日付と曜日が合わない

    javaのPGを作成しています。 内容的には1週間分のカレンダーを表示しようと思っているのですが・・・・・ Calendarクラスを使用して、対象の日付と曜日を取得しようとしているのですが、 年月日は指定のものが取得できているようなのですが、曜日だけはおそらく来月の曜日を 取ってしまっているようです。 原因がまったく分かりません。 下に、Calendarクラスを使用した部分を抜粋した ソースを記述するので、なにが原因か教えていただけないでしょうか? 【jspファイル内】 <% Calendar cal= Calendar.getInstance(); cal.set( 2010, 11, 25 ); // ※実際は変数だが、正しい値が入っているのは確認済み %>                  ・                  ・                  ・ for ( int loopCnt = 0; loopCnt < 7; loopCnt ++ ){         if ( loopCnt > 0 ){             cal.add(Calendar.DATE,1);         }     // デバッグ用     out.print( cal.get(Calendar.YEAR));     out.print( cal.get(Calendar.MONTH));     out.print( cal.get(Calendar.DATE));     out.print( cal.get(Calendar.DAY_OF_WEEK)); } 【実行結果】 2010 11 25 7 2010 11 26 1 2010 11 27 2 2010 11 28 3 2010 11 29 4 2010 11 30 5 2010 11 31 6

    • ベストアンサー
    • Java
  • 曜日を格納する方法はどちらが良いですか?

    チェックボックスを付けた曜日だけ集計したいのですが、 曜日をどちらの形でテーブルに格納すべきか悩んでいます。 通常どちらにすべきでしょうか? 何か明確なメリットがあれば教えてほしいです。 案1)レコード数=ID数で済むが、曜日検索時はLIKEの部分一致 id day_of_week(int) 1 12 2 17 最大1万レコード 案2)レコード数=ID数xチェックした曜日。曜日検索時時は完全一致 id day_of_week(int) 1 1 1 2 2 1 2 7 最大7万レコード

    • ベストアンサー
    • MySQL
  • 日付からの曜日取得

    VB6を使っています。 取得した年月の一日の曜日を取得したいのですが うまくできません。formatもなぜかエラー出るんです・・・ どなたか教えてください Dim dtCurrent As Date Dim y As Integer Dim m As Integer Dim j as string Dim nWeek As Integer j=DateTime.Date() y = Mid(j, 1, 4)'年 m = Mid(j, 6, 2)'月 dtCurrent = Format(y&m&01, yyyy / mm / dd) Week = Weekday(dtCurrent) - 1 '曜日取得

  • 曜日の求め方

    初めて質問します。javascrip似ついては殆ど初心者です。 今、Web上で月間の計画表を作ろうとしています。 カレンダーのツールを借りればすぐなんだと思いますが、せっかくなので、こつこつと自分で作ってみようと思いました。 形としては、縦に長い3列の表があって(日付の数なので30か31段あります)、1番左端の列に上から1→31(仮に)まで数字が書いてあります。 この2列目に、月が替わるごとに自動で変更される『曜日』を入れたいのです。 色々本やサイトを参考にして、今日の日付や曜日を書きだしたりするところまでは辿り着けました。けれど、西暦と月だけが自動に変更して、日付はそのまま(指定した日にち)の場合のスクリプトの書き方が、まだ理解できません。 1『week = new Array("日","月","火","水","木","金","土"); 』 2『w = week[day.getDat()]; 』 3『day = new Date(); 』 4『day.getFullYear(); 』 5『day.getMonth()+1; 』 6『day.setDay(数字を直接入れていいのですか?); 』 7『document.write(w); 』 この7つに何かを加えたり取り払ったりしたらいいのでしょうか? 全然違っていたらすみません。 それと、全部で30段くらいあるので、できればhead内(か外部)に大まかなのを書いて、その表の中には最小限だけタグを書くようなことはできるのでしょうか? 質問が多くてですみません。

  • 週や年データを取得するには

    PHPで週単位のスケジュール表を作っています。 次の(1)または(2)を簡単にできる方法があれば、教えてください。 1)「11月の3週目の水曜日」や「51週(1年を通しての週)の月曜日」を取得する (JavaでいうところのCalendar.WEEK_OF_MONTH や DAY_OF_WEEK_IN_MONTH, WEEK_OF_YEAR ) 2)表示されている週(週先頭の年月日は判明している)から、前週・次週を持ってくる

    • ベストアンサー
    • PHP
  • 今日の曜日の取得方法について

    タイトルの通りなんですが、今日の曜日の取得方法についてアドバイスをお願いします。 自分でネットを調べてみて、下記の通りに記述してみました。 $times = time(); ($tsec,$tmin,$thour,$tmday,$tmonth,$tyear,$weekday,$tstime) = localtime($times); @weekly = ('Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sut'); 次に表示した場所に print "$weekly[$weekday]\n"; と記述したら、一応今日の曜日(Thr)が表示されました。 私はPerlは全くの初心者で、何とか自力でここまで辿り着く事ができたのですが、このような記述の方法で間違いはないでしょうか? うるう年の計算も、付け加えないといけませんか? 初歩的な質問かもしれませんが、アドバイスを頂けると助かります。 それでは、よろしくお願いします。

    • ベストアンサー
    • Perl
  • エクセルマクロで日付から曜日を取得する方法

    エクセルマクロで日付から曜日を取得する方法ですが、 例えば、2008/8/19 の様な書式ですと、 Dim a As Date a = Date Range("$A$1") = a Range("$A$2") = Weekday(a) Range("$A$3") = WeekdayName(Weekday(a)) このように記述すると簡単に取得できたのですが、 08.19.2008の様な書式ですと、 エラーが出て変換ができません。 何か良い方法はありませんでしょうか? 当方、完全に初心者です。 よろしければ、素人でもわかりやすいように 御教示いただけましたら幸いです。

  • 第○曜日であるかを取得する関数

    プログラミング初心者ですが、ある日が「第○曜日」(例 第1火曜日)を取得する関数をつくりたいと思うのですが、素人考えでは、 1、その日の曜日を取得 2、その月の日数を取得 3、その日を7日で割って第○週であるかを判断 というようことが思いつきますが、このようなやりかたはプログラミングの一般的な方法でしょうか? #質問のしかたは自信なし。 #何かもっと便利な方法があるのではと思ったりしての質問です。 #aspにて作成します。 #あまり馬鹿馬鹿しい質問だとしたら黙殺して下さい。 (^^;

  • 配列を使ってカレンダーを表示したい。

    配列を使った場合のカレンダー表示方法で質問します。 現在、 Calendarクラスを使い、配列に日を入れていくようにしているのですが Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at CalendarSample.main(CalendarSample.java:33) のようなエラーが生じます。 以下のような手順でで考えることは可能なのでしょうか? よろしくお願いします。 Calendar cal = Calendar.getInstance(); //最終日 int max = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //月の週の合計数 int week = cal.get(Calendar.WEEK_OF_MONTH); //日を格納する配列 int[][] date = new int[week][7]; int n = 0; for(int d=1;d<=max;d++){ //年月日の設定 cal.set(2011,6,d); int youbi = cal.get(Calendar.DAY_OF_WEEK); date[n][youbi] =d; //日が、土曜になったら、配列の列を変える if(cal.get(Calendar.DAY_OF_WEEK)==6){ n+=1; } }

  • java Calendarクラス

    javaで月、日を入力してカレンダーを作成したのですが 年と月のsetでmonth-1はマジックナンバーなので直したいのですが どなたかわかる方教えてください。 package sample; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Test { private final static int firstday = 1; public static void main(String[] args) { //カレンダーのインスタンスを取得します Calendar cal = Calendar.getInstance(); //文字入力 BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); //年を取得 int year =0; //月を取得 int month =0; //最後の日付 int lastDay =0; //月初めの曜日を取得 int week =0; //年妥当性チェック boolean CheckYear = true; //月妥当性チェック boolean CheckMonth = true; try { //年妥当性チェック while(CheckYear){ System.out.println("年を入力してください"); //年を入力します year = Integer.parseInt(input.readLine()); //年が4桁の場合 if(String.valueOf(year).length()==4){ CheckYear = false; }else{ System.out.println("年は4桁で入力してください"); } } //月妥当性チェック while(CheckMonth){ System.out.println("月を入力してください"); //月を入力します month = Integer.parseInt(input.readLine()); //月が1~12の場合 if(month>=1&&month<=12){ CheckMonth = false; }else{ System.out.println("月1~12を入力してください"); } } }catch(IOException e){ System.out.println("数字以外は入力しないでください"); System.out.println("処理を中断します"); return; }catch (Exception a) { System.out.println("数字以外は入力しないでください"); System.out.println("処理を中断します"); return; } //年、月をセットします cal.set(year,month-1,cal.getActualMinimum(Calendar.DATE)); //月初めの曜日を取得 week = cal.get(Calendar.DAY_OF_WEEK); //年月を出力する System.out.println(String.valueOf(year)+"年"+String.valueOf(month)+"月"); //曜日を出力する System.out.println("日 月  火  水  木  金  土"); //最後の日付を取得する lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); /* * 最後の日付を取得する */ if(month==1||month==3||month==7||month==8||month==10||month==12) { lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); }else if(month==4||month==6||month==9||month==11){ lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); }else if(year%4==0&&month==2){ lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); }else if(year%4!=0&&month==2){ lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); } /* * カレンダーを出力する */ //最後の日付まで繰り返す // 最後の日付まで繰り返す for (int i = 1; i <= lastDay; i++) { // 1日とそれ以外で分岐する if (i == 1) { // 1日の曜日位置まで移動する for (int j = 1; j < cal.get(Calendar.DAY_OF_WEEK); j++) { System.out.print(" "); } } else { // 日付を増やす cal.add(Calendar.DAY_OF_MONTH, firstday); } // 1~9と10~で表示を変える if (i < 10) { System.out.print(" " + i); } else { System.out.print(" " + i); } // 土曜日になったら改行する if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(""); } } } }