曜日の求め方

このQ&Aのポイント
  • 初心者向けに、JavaScriptを使用して月間計画表を作成する方法について質問します。
  • 表の中には、日付の列と曜日の列があり、曜日は月が変わるごとに自動で変更されるようにしたいです。
  • 具体的なスクリプトの書き方やテーブルの作成方法について教えてください。
回答を見る
  • ベストアンサー

曜日の求め方

初めて質問します。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内(か外部)に大まかなのを書いて、その表の中には最小限だけタグを書くようなことはできるのでしょうか? 質問が多くてですみません。

  • tbpm
  • お礼率100% (3/3)

質問者が選んだベストアンサー

  • ベストアンサー
noname#30818
noname#30818
回答No.1

week = new Array("日","月","火","水","木","金","土"); day = new Date(好きな日付);//例えば'2007/5/20'など Dateは定義済みコアオブジェクトと呼ぶらしく、括弧内に書くものを引数と呼ぶらしい。 引数を省略すると今日の日付と時刻を作成する。 "月 日, 年 時:分:秒" で日付を表した文字列。new Date("December 25, 1995 13:30:00")。 年、月、日を表す整数値のセット。new Date(1995,11,25)。 年、月、日、時、分、秒を表す整数値のセット。new Date(1995,11,25,9,30,0) これらを引数にするとその日付を作成するらしい。 http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide:Predefined_Core_Objects:Date_Object こうして作成された日付を"get"メソッドにより取得できるらしい。 y = day.getFullYear(); m = day.getMonth()+1; d = day.getDate(); w = week[day.getDay()]; そんなことで例えばfor文を使って1ヶ月分の日と曜日をbody内に書き出そうと思いスクリプトを書いてみるとこんな形で書くことができるとおもいますよ。(悪いスクリプト例です。) <script type="text/javascript"> week = new Array("日","月","火","水","木","金","土"); //"aaa(月)"でその月の日と曜日を書き出す。例の場合4月 window.onload=function(){aaa(4)} function aaa(mm){ k='<table>' for(var i = 1;i < 100;i++){//100回繰り返す day = new Date('2007/'+mm+'/'+i);//'2007/4/1'~'2007/4/100'を求めている y = day.getFullYear(); m = day.getMonth()+1; d = day.getDate(); w = week[day.getDay()]; if(m != mm){break;}//4/31は5/1となるので'mm'と'm'が一致しないので繰り返しが終る(break)。 k+='<tr><td>'+d+'</td><td>'+w+'</td></tr>' } k+='</table>' document.body.innerHTML=k;//bodyの中身をkにする。 } </script>

tbpm
質問者

お礼

…すみません、CSS云々に関しては自己解決できました。 javascriptって、excelの数式程度に考えていたのですごくいい勉強になりました。奥が深いんですね。 これから色々調べてもっと勉強してみます。 今回は、どうもありがとうございました。

tbpm
質問者

補足

コメントのところがスゴクわかりやすくて、大変助かりました。 初心者の私でも理解できました。 大体これで充分なのですが、一つだけ教えてただけませんか? 後ろから3行目の 『document.body.innerHTML=k;//bodyの中身をkにする。』 というところなのですが、もしこの『body』というのを例えば、このhtml内の既存のid name にすると、そのid内にこの日付と曜日を記述してくれるのでしょうか? この月間予定表を置こうと思っているページは、CSSでブログの様にidの付いたボックスを配置してあります。 その中の <div id="side"></id> この二つのタグの間に(id sideの内容として)書き出したいと思ってるのですが… (ジャンル違いでしたら本当にすみません)

関連するQ&A

  • 明日の日付

    お世話になります。 一週間のスケジュールをWEB上で表示するのにJavaScriptで日付を取得したいです。 本日の曜日を判定して一週間後の日付を計算させたくて以下のJavaScriptを書きました。 w = (new Date()).getDay(); if(w == 1) { mydate=new Date(); Ye=mydate.getFullYear()+"年"; Mo=mydate.getMonth()+1+"月"; Da=mydate.getDate()+"日"; document.write(Mo+Da+"(月)"); } if(w == 2) { mydate=new Date(); Ye=mydate.getFullYear()+"年"; Mo=mydate.getMonth()+1+"月"; Da=mydate.getDate()+6+"日"; document.write(Mo+Da+"(月)"); } この書き方だと月末がうまく処理出来ません。 32日33日となってしまいます。 正しいJavaScriptの記述を教えて下さい。 宜しくお願いいたします。

  • Excelの表で、日付に曜日を対応させたい

    Excelで表を作るのですが、日付に曜日を対応させる方法を 調べたところ、1つのセルで例えば『2012/06/08』や『2012年6月8日』 等と書いた場合の曜日の出し方は分かったのですが、 ちょっと特殊な?表を作るよう頼まれて困っています。 要するに西暦と月と日付を書く欄がばらばらなのですが、 ------------------------------------------  2012年 6月 ****************  日付   1  2  3  4  …  曜日 金  土  日  月 … ------------------------------------------ ↑のような感じで、「年と月は空欄」「日付の数字は固定」の テンプレートにしておいて、何年何月の部分に数字を入れたら 自動で日付の下にその正しい曜日が入るようにならないかと いうものです。 もしどうしても不可能なのであればそれでもいいと 仰っていたのですが、こちらも単純な表くらいしか Excelを使わないのでよく分からず、ネットで調べても 求める回答が得られなかったので質問致しました。 詳しい方、アドバイスを頂ければ幸いです。 よろしくお願いします。

  • デジタル時計の曜日と時間

    フラッシュで簡単な携帯用壁紙を作ろうと思い、先日始めたばかりの超初心者です。 いろんなサイトを見て回ったのですがなかなか上手くいかないので質問させてください。 2007/12/20 Thursday という風に日付と曜日を別々に表示させたいと思っています。 見て回ったサイトはどこも全て一列に並べて表示しているので自分で分離してみたのですが、 日付のダイナミックテキストボックスは表示されても曜日のボックスが表示されません; アクションスクリプトを置いていきますのでどなたかご指南ください…>< var myDate = new Date(); var yobi = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var y = myDate.getFullYear(); var m = myDate.getMonth()+1; var d = myDate.getDate(); var yb = myDate.getDay(); var yobi = yobi[yb]; $date = y+"/"+m+"/"+d; day.text = $date; yobi.text = yobi;

    • ベストアンサー
    • Flash
  • javascriptで任意の曜日に日をプラス

    javascriptで任意の曜日に日をプラスさせたいです。 ●外部 //日付取得 var nweek = new Array("日","月","火","水","木","金","土"); var now = new Date(); var nYear = now.getFullYear(); var nMonth = now.getMonth() + 1; var nDate = now.getDate(); var nweekjp = now.getDay(); //配送日計算 var now = new Date(); now.setDate(nDate+7); var yYear = now.getFullYear(); var yMonth = now.getMonth() + 1 ; var yDate = now.getDate(); var yweekjp = now.getDay(); ●実行タグ <script type="text/javascript">document.write(""+yYear+"/"+yMonth+"/"+yDate+" ");</script><script type="text/javascript">document.write(""+nweek[yweekjp]+"曜日 ");</script> で、配送までの日付を取得させているのですが、 土日の配送が月曜日になるため、土曜日の場合は、日付を2日追加、日曜日の場合は、1日追加としたいのですが、どうすればいいでしょうか。 調べても日付取得方法ばかりで、困っています。 ご存知でしたら教えて下さい。 お願いします。

  • 自動的に曜日が変わる設定

    エクセルで他の人が作った表で、一ヶ月の日付と曜日が入っているものがあったのですが、「月」の部分をたとえば「4月」の「4」を「5」に変えると、自動的に5月の曜日に対応するように曜日が修正される表があったのです。その人が退職してしまい、「あれは便利だったな~」と思うものの、どういった計算式を入れたらいいのか、また、計算式とか、そういうものではないのか、自分ではわかりません。 Windows xp Excel2002です。 よろしくお願いします。

  • エクセル 曜日の色分け

    こんにちは。 エクセル2007を使用しています。 日付(A列)を入力して、ユーザー定義から曜日(B列)は自動で表示されるように出来ました。 さらに、このB列の曜日について、土曜日は青色、日曜日は赤色で自動表示(月~金は黒のまま)させたいのですが、どのように操作したらよいのでしょうか。 教えてください。よろしくお願いします。

  • エクセルで曜日は設定できますか?

    こんにちは。 エクセル初心者です。 エクセルの表に、数字を打ち込むだけで、日付と曜日を表示できるようにできますか? 例えば“2/5”と入力すると “2月5日(土)”と表示されるようにしたいのですが・・・ 初歩的なことでしたら、申し訳ありませんが、よろしくお願い致します。

  • javascriptで質問

    javascript初心者です。 日付で自動的に変わるようなメニューが作りたいのですが もっとシンプルに簡潔にできますか? また、開いているページのタブの色を他と変えたいのですができますか? 以下ソース↓ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>スクリプトテスト</title> <style type="text/css"> .menu li{ list-style-type:none; float:left; border:solid 1px #666666; } .menu li a{ padding:5px; background:#eeeeee; display:block; } .menu li a:hover{ background:#ffffff; } </style> <script type="text/javascript"> <!-- var day01 = new Date(); var year01 = day01.getFullYear(); //年 var mon01 = day01.getMonth() + 1; //月 var date01 = day01.getDate(); //日 var day02 = new Date(); day02.setDate( day02.getDate()+1 ); var year02 = day02.getFullYear(); //年 var mon02 = day02.getMonth() + 1; //月 var date02 = day02.getDate(); //日 var day03 = new Date(); day03.setDate( day03.getDate()+2 ); var year03 = day03.getFullYear(); //年 var mon03 = day03.getMonth() + 1; //月 var date03 = day03.getDate(); //日 var day04 = new Date(); day04.setDate( day04.getDate()+3 ); var year04 = day04.getFullYear(); //年 var mon04 = day04.getMonth() + 1; //月 var date04 = day04.getDate(); //日 var day05 = new Date(); day05.setDate( day05.getDate()+4 ); var year05 = day05.getFullYear(); //年 var mon05 = day05.getMonth() + 1; //月 var date05 = day05.getDate(); //日 var day06 = new Date(); day06.setDate( day06.getDate()+5 ); var year06 = day06.getFullYear(); //年 var mon06 = day06.getMonth() + 1; //月 var date06 = day06.getDate(); //日 var day07 = new Date(); day07.setDate( day07.getDate()+6 ); var year07 = day07.getFullYear(); //年 var mon07 = day07.getMonth() + 1; //月 var date07 = day07.getDate(); //日 // --> </script> </head> <body> <ul class="menu"> <script type="text/javascript"> <!-- document.write('<li><a href="'+year01+mon01+date01+'.html">'+mon01+'月'+date01+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year02+mon02+date02+'.html">'+mon02+'月'+date02+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year03+mon03+date03+'.html">'+mon03+'月'+date03+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year04+mon04+date04+'.html">'+mon04+'月'+date04+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year05+mon05+date05+'.html">'+mon05+'月'+date05+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year06+mon06+date06+'.html">'+mon06+'月'+date06+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year07+mon07+date07+'.html">'+mon07+'月'+date07+'日'+'</a></li>'); //--> </script> </ul> </body> </html>

  • ディズニーランド 混雑する曜日・空いている曜日

    日付は全く未定ですが、5月にディズニーランドに行く予定でいます。 さすがにゴールデンウィークは避けますが、それ以外の曜日の混雑度合いがいまいち分かりません; 大体の傾向で構いませんので、比較的空いている曜日と混雑してる時が多い曜日を教えて下さい!後、もしかしたら日曜日に行く事になる…かも知れないのですが、土日はやはり混み混みでしょうか? ご回答宜しくお願いいたします!

  • 曜日が自動ではいる数式

    A2~AE31に1~31の数字(日付)が入力されています。A1のセルに「2005/04」と入力すると、数字の下の行にA3~AE31に曜日(例えばA3には2005年4月1日の『金』)が自動で入る数式をおしえてくださいませんでしょうか?急いでおります。助けてください。