• 締切済み

曜日に関係なく、交互に表示させる。

すみません。 思いっきり初心者です。 以前、同僚に協力してもらい、 2つの表示を1日毎に表示を変えるのを教えて貰ったんですが、 (下記内容) <!-- var now = new Date(); var xday = new Date(2004, 9-1, 15); count = Math.ceil( (xday.getTime() - now.getTime()) / (24*60*60*1000) ) var n = count % 2; if(n == 0){ document.write("<FONT style='font-size : 16px; color : #00cc00'>あ</font><BR>"); } else { document.write("い<BR>"); } //--> こんな感じでした。 これを2つ交互から <1日目:あ、2日目:い、3日目:う、4日目:あ、5日目:い、…> と表示させたいんですが、同僚は辞めてしまいどうしたらいいか解りません。 教えてください。 宜しくお願いします。

みんなの回答

  • NTJ
  • ベストアンサー率44% (46/103)
回答No.3

もっと簡単に・・・ <SCRIPT> var xData=[ "あ", "い", "う", "え", "お"]; var now = new Date(); var xday = new Date(2004, 9-1, 15); count = Math.ceil( (xday.getTime() - now.getTime()) / (24*60*60*1000) ) ; var n = count % xData.length; document.write("<FONT style='font-size : 16px; color : #00cc00'>"+xData[n]+"</font><BR>"); </SCRIPT> としてやると、1行目からの xData を修正するだけで、数を増減させても自動で対応するので便利になるかと思われます。

  • talepanda
  • ベストアンサー率58% (45/77)
回答No.2

var n = count % 2; if(n == 0){ document.write("<FONT style='font-size : 16px; color : #00cc00'>あ</font><BR>"); } else { document.write("い<BR>"); } を var n = count % 3; if(n == 0) document.write("あ<BR>"); else if(n == 1) document.write("い<BR>"); else if(n == 2) document.write("う<BR>");

dan-san
質問者

お礼

皆様。 初心者に付き合って頂き、有難うございました。 根本で間違っていたようです。 <!-- var now = new Date(); var xday = new Date(2004, 9-1, 15); count = Math.ceil( (xday.getTime() - now.getTime()) / (24*60*60*1000) ) ↑これの「xday.getTime()」と「now.getTime()」を逆にしたら うまく行きました。 有難うございました。

回答No.1

var n = count % 2; を var n = count % 3; に変えて if(n == 0){ 1個目の表示 }else if(n == 1){ 2個目の表示 }else{ 3個目の表示 } でいいんじゃないですか? とりあえず意味ですが まず最初のcount = ・・・・・までが ある日から今日までの日数を取っています。 次に var n = count % 3; で、その日数を3で割った余り(0,1,2)を求め if(n=**){} で余り毎に表示を変えているだけです。 当然余りは0,1,2,0,1,2と1日毎に変わっていくので 表示が変える事ができるわけです。

dan-san
質問者

お礼

ありがとうございます。 早速試しました!うまく行きそうです! (すみません。3日間様子を見させて下さい。 念のため) >else if(n == 1){ の「else」が解らず、外した状態でやってました。 うまく行く訳無いですね。 ありがとうございました。 (無いとは思いますが) 3日後に補足で質問をするかも知れませんが、 宜しくお願いします。

dan-san
質問者

補足

すみません。 試してみたのですが、何故か1個目の表示と3個目の表示がでるだけで、2個目がでない。。。 >var xday = new Date(2004, 9-1, 15); の「9-1」を「9-2」とか「8-31」にして試しました。 この試し方が違うのでしょうか? >NTJ様 こちらに記載して正しいのかどうか解りませんが (なんせ、「教えて!goo」を利用するのが初めてで…) 教えて頂いた方法で、変更するのは、 (今回3パターンなので) ><SCRIPT> >var xData=[ の「xData」を「3」に替え、 >"あ", >"い", >"う", >"え", >"お"]; の「,"え","お"」を削除するのでしょうか。 ↑試したら違いました。やっぱり。 で、 >>"+xData[n]+" の「n」を「3」にしたら「え」しか出ません。 多分、解る人が見れば素晴しい回答の様なのですが、 すみません。理解出来ませんでした。 もし、宜しければ初心者に毛も生えていない様な ワタシに解る様に教えて頂けますでしょうか。 お手数をおかけします。宜しくお願いします。

関連するQ&A

  • カウントダウンを何個も表示したいのですが・・・

    こんばんは。 「次の誕生日まであと○日」というカウントダウンを自動で表示したくて 検索してみたところ,JavaScriptで書くことが分かりました。 (JavaScriptの書き方は全く知りません。) とあるHPで,以下のように書けば良いと習い <SCRIPT LANGUAGE="JavaScript"> <!-- var now = new Date(); var xday = new Date(2004, 9-1, 15); count = Math.ceil( (xday.getTime() - now.getTime()) / (24*60*60*1000) ); document.write("<FONT style='font-size : 16px; color : #666666'>"); document.write("次の誕生日まであと "); document.write(count); document.write("日 です</FONT>"); //--> </SCRIPT> このように書いたら,無事できました。 しかし, 「次の誕生日まであと○日」 「○さんの誕生日まであと○日」 というように,改行して2つのカウントダウンを表示したく HTMLしか分からないので<br>を入れてみたのですが カウントダウンが2つとも表示されません。 改行して表示するにはどうしたら良いのでしょうか。 どうか教えてください。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • このjavascriptコードを短くできませんか?

    javascript初心者です。 どなたか下記のコードを短くしていただけないでしょうか? 変数1~変数12まであるので、それぞれコードを書いたら長くなってしまいました。 このままでもうまく動いてはいるのですが、もし短くできるならしたいなと思いまして。 よろしくお願いいたします。 <script type="text/javascript"> <!-- //基準になる日を設定 inputDay1 = "変数1"; //指定日を変数に var hairetu = inputDay1.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday1 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay2 = "変数2"; //指定日を変数に var hairetu = inputDay2.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday2 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay3 = "変数3"; //指定日を変数に var hairetu = inputDay3.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday3 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay4 = "変数4"; //指定日を変数に var hairetu = inputDay4.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday4 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay5 = "変数5"; //指定日を変数に var hairetu = inputDay5.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday5 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay6 = "変数6"; //指定日を変数に var hairetu = inputDay6.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday6 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay7 = "変数7"; //指定日を変数に var hairetu = inputDay7.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday7 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay8 = "変数8"; //指定日を変数に var hairetu = inputDay8.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday8 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay9 = "変数9"; //指定日を変数に var hairetu = inputDay9.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday9 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay10 = "変数10"; //指定日を変数に var hairetu = inputDay10.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday10 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay11 = "変数11"; //指定日を変数に var hairetu = inputDay11.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday11 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); inputDay12 = "変数12"; //指定日を変数に var hairetu = inputDay12.split("/"); var nowday = new Date(); //今日の日付 var xday = new Date(hairetu[0],hairetu[1] - 1,hairetu[2]);//基準になる日 var countday12 = Math.ceil((xday.getTime() - nowday.getTime()) / (1000 * 60 * 60 * 24)); if (countday1 < 0)document.write("111"); if (countday2 < 0)document.write("222"); if (countday3 < 0)document.write("333"); if (countday4 < 0)document.write("444"); if (countday5 < 0)document.write("555"); if (countday6 < 0)document.write("666"); if (countday7 < 0)document.write("777"); if (countday8 < 0)document.write("888"); if (countday9 < 0)document.write("999"); if (countday10 < 0)document.write("101010"); if (countday11 < 0)document.write("111111"); if (countday12 < 0)document.write("121212"); --> </script>

  • document.write()の()内にタグを使用したいのですが

    質問いたします。 カウントダウンに関する質問なのですが、例えば以下のスクリプトの中でdocument.write()の()内の".happy."の部分の色を変えたいのですが、タグの挿入のルールが解りません。 document.write("誕生日まであと",<font color="#FF0000">happy</font>," 日") とか色々何パターンか試して見たのですが、間違っているようで表示されなくなってしまいます。 <SCRIPT language="JavaSCRIPT"> <!---- var set_y = 2006; //年 var set_m = 10; //月 var set_d = 01; //日 var now = new Date(); var spday= new Date(set_y,set_m-1,set_d); happy = (spday.getTime() - now.getTime())/(24*60*60*1000); happy = Math.ceil(happy); if(happy >0) document.write("誕生日まであと ",happy," 日"); //カウントダウン else if(happy ==0) document.write("誕生日おめでとう"); //当日 else if(happy <0) document.write("来年もよろしくね!"); //その後 //------> </script> 適切な場所に<font color="#FF0000">~</font>を入れる書き方をお教え頂ければ幸いでございます。よろしくお願い致します。

  • JavaScriptでイベントまでのカウントを作りたい。

    教えてください。JavaScript初心者です。 JavaScriptでイベントまでのカウントを作りたいのですが、 日にちを画像でだして、指定した日がきたら、画像で差し替えるようにしたいのですが、どうすればいいのでしょうか? ※現在は指定した日がきたら、「おめでとう」の文字がでるようにしてます。 書いたタグは下記になります。 アドバイスをお願いします。 <script language="JavaScript"><!-- var now = new Date(); var point = new Date(2009,8-1,25); var countdown = Math.ceil( ( point.getTime() - now.getTime() ) / (1000*60*60*24) ); if(countdown > 0) { document.write('countdown '); } else { document.write('おめでとう!'); } // --></script>

  • カウントダウンのタグ

    おバカな質問でごめんなさいです(T_T) 笑わないでね?! 呆れないでね?! カウントダウンのカウンター(?)を置きたくて いろんなサイトを見て作ろうと思ったのですが これじゃ~表示されなくて… 何が足りないですか? ()の中ってどうするのですか? たぶん… メチャクチャだと思うのでここに質問すること事態 恥ずかしくて迷いましたが宜しくお願いします。 m( _"_ )mペコ♪ <!-- var set_y = 2005; var set_m = 9; var set_d = 5; var now = new Date(); var spday= new Date(set_y,set_m-1,set_d); a = (spday.getTime() - now.getTime())/(24*60*60*1000); a= Math.ceil(a); if(a >0) document.write("あと",a,"日で○○○です。"); else if(a==0) document.write("<h2>○○○開催!!</h2>"); else if(a <0) document.write("○○○",-a,"日過ぎました・・・"); --> <script language="javascript"> <!-- //--> </script>

    • ベストアンサー
    • HTML
  • JavaScriptがマックのサファリでは、正しく動きません。

    11月24日まで、あと何日です。というように日にちを表示させたいのですが、WindowsのIE6なら正しく日付が表示されるのですが、マックのサファリだととんでもない数字が表示されます。 どなたか、どちらでも正しく表示させられる方法を教えてください。お願いいたします。 <script language="javascript"> <!-- var sakiday = new Date("2005/11/24"); var now = new Date(); var tokuteiday = Math.floor((sakiday.getTime()-now.getTime())/(24*60*60*1000)); document.write("<b>"+tokuteiday+"</b>"); //--> </script>

  • それぞれの表記の色を変えるには?

    先日、日数カウンターの代わりに、表記を変えるには という質問をして、お答えを頂き、無事解決したのですが、また新たな壁にぶつかってしまいました・・・ <script type="text/javascript"> <!-- var tday=new Date(); var bday=new Date(2013,2-1,4); var days=Math.floor((tday.getTime()-bday.getTime())/(24*60*60*1000));if(days>=301){document.write("良く出来ました");} else if(days>=100){document.write("あともう少し");} else if(days>=51){document.write("この調子で");} else {document.write("頑張りましょう");} // --> </script> というプログラムで、 以下のように変更して、文字の色を変える事はできたのですが <font color="#0000ff"><script type="text/javascript"> <!-- var tday=new Date(); var bday=new Date(2013,2-1,4); var days=Math.floor((tday.getTime()-bday.getTime())/(24*60*60*1000));if(days>=301){document.write("良く出来ました");} else if(days>=100){document.write("あともう少し");} else if(days>=51){document.write("この調子で");} else {document.write("頑張りましょう");} // --> </script></font></td> 以下のように、その表記別に色を変える方法が分かりません 良く出来ました   赤 font color="#ff0000 あともう少し     青 font color="#0000ff この調子で     黄色 font color="#ffff00 どなたか、分かる方がいらっしゃいましたら、どうか宜しくお願い致します。

  • カウントダウン JavaScript の else if 3行目以降が実行されない

    ホームページに以下のようなJavaScriptを実行したいのですが、else if の3行目以降が実行されません。 3行目以降も実行するには、どこを修正したら宜しいのでしょうか? <script language="javascript"> <!-- var set_y = 2009; var set_m = 4; var set_d = 10; var now = new Date(); var spday= new Date(set_y,set_m-1,set_d); a = (spday.getTime() - now.getTime())/(24*60*60*1000); a= Math.ceil(a); if(a >0) document.write('大会まで<BR>あと</FONT><FONT size="7" color="#ccff00" face="Arial">', a,'</FONT><FONT size="6" color="#ffffff" face="Arial">日') else if(a==0) document.write('本日は、大会1日目<BR><FONT size="4"> </FONT><BR><FONT size="5">跳躍競技</FONT><BR></FONT><FONT size="7" color="#ccff00" face="Arial">走り幅跳び</FONT>') else if(a=-1) document.write('本日は、大会2日目<BR><FONT size="4"> </FONT><BR><FONT size="5">跳躍競技</FONT><BR></FONT><FONT size="7" color="#ccff00" face="Arial">走り高跳び</FONT>') else if(a=-2) document.write('本日は、大会3日目<BR><FONT size="4"> </FONT><BR><FONT size="5">投擲競技</FONT><BR></FONT><FONT size="7" color="#ccff00" face="Arial">砲丸投げ</FONT>') else if(a=-3) document.write('本日は、大会4日目<BR><FONT size="4"> </FONT><BR><FONT size="5">投擲競技><BR></FONT><FONT size="7" color="#ccff00" face="Arial">円盤投げ</FONT>') else if(a=-4) document.write('本日は、大会5日目<BR><FONT size="4"> </FONT><BR><FONT size="5">トラック競技><BR></FONT><FONT size="7" color="#ccff00" face="Arial">110m ハードル</FONT>') else if(a=-5) document.write('本日は、大会6日目') else if(a=-6) document.write('本日は、大会7日目<BR><FONT size="4"> </FONT><BR><FONT size="5">トラック競技</FONT><BR></FONT><FONT size="7" color="#ccff00" face="Arial">10000m</FONT>') else if(a=-7) document.write('本日は、大会8日目<BR><FONT size="4"> </FONT><BR><FONT size="5">トラック競技><BR></FONT><FONT size="7" color="#ccff00" face="Arial">リレー</FONT>') </script>

  • JavascriptからJavaへの変え方

    Javascriptで作ったものをJavaにしないといけなくなったのですが 私はJava初心者でまったくわかりません。 色々ネットで調べてみたのですが、どうも難しくて理解することができませんでした。 下にJavascriptで作ったものを載せてるのですがどなたかやり方を教えてもらえないでしょうか? <html> <head> <title>サンプル</title> <script type="text/javascript"> function jikoku() { dd = new Date(); document.F1.T1.value = dd.toLocaleString(); window.setTimeout("jikoku()", 1000); } </script> <script type="text/javascript"> mes = new Array(5); mes[0]="0"; mes[1]="1"; mes[2]="2"; mes[3]="3"; mes[4]="4"; date=(new Date()).getHours(); if( 0 <= date && date <= 5 ){ document.write(mes[0]); } else if( 6 <= date && date <= 10 ){ document.write(mes[1]); } else if( 11 <= date && date <= 16 ){ document.write(mes[2]); } else if( 17 <= date && date <= 19 ){ document.write(mes[3]); } else{ document.write(mes[4]); } </script> <script type="text/javascript"> function Random() { var kazu = Math.random(); kazu = kazu*100; kazu = Math.ceil(kazu); if( kazu<=9 ) document.write('<br/>○1<br/>'); else if( kazu<=19 ) document.write('<br/>○2<br/>'); else if( kazu<=29 ) document.write('<br/>○3<br/>'); else if( kazu<=39 ) document.write('<br/>○4<br/>'); else if( kazu<=49 ) document.write('<br/>○5<br/>'); else if( kazu<=59 ) document.write('<br/>○6<br/>'); else if( kazu<=69 ) document.write('<br/>○7<br/>'); else if( kazu<=79 ) document.write('<br/>○8<br/>'); else if( kazu<=89 ) document.write('<br/>○9<br/>'); else document.write('<br/>○10<br/>'); } Random() </script> <script language="JavaScript"> var imglist = new Array( "sample1.jpg", "sample2.jpg", "sample3.jpg", "sample4.jpg" ); var selectnum = Math.floor((Math.random() * 100)) % imglist.length; var output = "<img src=" + imglist[selectnum] + ">"; document.write(output); </script> </head> </html>

  • 指定日時までのカウントダウン

    指定日時までのカウントダウンで、数字を画像で表示させたモノを作りたいのですが、 いろんなサンプル等を見ながら作ってみたものの、うまくいきません。。。 アドバイスをお願い致します。 <html> <head> <title>指定日までの残り日数+時間を画像で表示する</title> <script language="JavaScript"><!-- function xDay(y,m,d,hh,mm,ss) { today = new Date(); xday = new Date(y,m-1,d,hh,mm,ss); dayMS = (24*60*60*1000,60*60*1000); days = Math.floor((xday.getTime()-today.getTime())/(24*60*60*1000)); hours = Math.floor(((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*60*1000)); minutes = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*1000))%60); seconds = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/1000)%60%60); if (seconds<10) { seconds = "0"+seconds; } if (minutes<10) { minutes = "0"+minutes; } if (hours<10) { hours = "0"+hours; } days += ""; for (i=0; i<days.length; i++) document.write("<img src='clock/"+days.charAt(i)+".gif'>"); hours += ""; for (i=0; i<hours.length; i++) document.write("<img src='clock/"+hours.charAt(i)+".gif'>"); minutes += ""; for (i=0; i<minutes.length; i++) document.write("<img src='clock/"+minutes.charAt(i)+".gif'>"); seconds += ""; for (i=0; i<seconds.length; i++) document.write("<img src='clock/"+seconds.charAt(i)+".gif'>"); } // --></script> </head> <body> <script language="JavaScript"><!-- xDay(2008,4,21,12,00,00); // --></script> </body> </html>