ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのjavascriptのif文について【超初心者】

  • mixiチェック
  • このエントリーをはてなブックマークに追加
【質問】
日、火、水、土曜日の場合は3日後の日付を、それ以外は2日後の日付を表示したいと思っています。if文で作成してみたのですが、すべて3日後の日付になってしまいます。

【プログラム】
<SCRIPT LANGUAGE="JavaScript">
<!---
now = new Date();
document.write(now.getMonth()+1,"月",now.getDate(),"日");


Mes=new Array(7);
Mes[0]="(日)中のご注文は";
Mes[1]="(月)午前9時までのご注文は";
Mes[2]="(火)午前9時までのご注文は";
Mes[3]="(水)中のご注文は";
Mes[4]="(木)午前9時までのご注文は";
Mes[5]="(金)午前9時までのご注文は";
Mes[6]="(土)午前9時までのご注文は";
myDate=new Date();
today=myDate.getDay();
document.write(Mes[today]);


if(Mes[0]){

dt = new Date();
dt.setTime(dt.getTime() + (3 * 24 * 3600 * 1000)); // n=3が日付です日
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");

}else{


if(Mes[1]){

dt = new Date();
dt.setTime(dt.getTime() + (2 * 24 * 3600 * 1000)); // n=2が日付です月
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");

}else{



if(Mes[2]){

dt = new Date();
dt.setTime(dt.getTime() + (3 * 24 * 3600 * 1000)); // n=3が日付です火
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");

}else{

if(Mes[3]){

dt = new Date();
dt.setTime(dt.getTime() + (3 * 24 * 3600 * 1000)); // n=3が日付です水
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");


}else{

if(Mes[4]){

dt = new Date();
dt.setTime(dt.getTime() + (2 * 24 * 3600 * 1000)); // n=2が日付です木
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");


}else{

if(Mes[5]){

dt = new Date();
dt.setTime(dt.getTime() + (2 * 24 * 3600 * 1000)); // n=2が日付です金
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");

}else{

if(Mes[6]){

dt = new Date();
dt.setTime(dt.getTime() + (3 * 24 * 3600 * 1000)); // n=3が日付です土
m = dt.getMonth() + 1;
d = dt.getDate();
document.write ( m+"月"+d+"日");


}

}

}

}

}

}

}


// 曜日よって文字を変える
w = (new Date()).getDay();
if(w == 0) document.write("(水)からのお届けとなります");
if(w == 1) document.write("(水)からのお届けとなります");
if(w == 2) document.write("(金)からのお届けとなります");
if(w == 3) document.write("(土)からのお届けとなります");
if(w == 4) document.write("(土)からのお届けとなります");
if(w == 5) document.write("(日)からのお届けとなります");
if(w == 6) document.write("(火)からのお届けとなります");



//-->
</SCRIPT>


超初心者で、とても悩んでいます…
ご教授宜しくお願いします。

コメント(5)

>if(Mes[0])
これはどうなってほしい式なんですか?

と一応疑問は色々あるんですけど、JavaとJavaScriptは別なので、
JS用のコミュで聞いた方が適格なお返事が頂けると思いますよ。

アルゴリズム?だけに関して言えば、ネストが激しくて混乱の元になるので、
日本語で一度流れを書いてみるのもいいかもです。
そうすればここだとJavaプログラムで答えて下さる方がいるかもしれませんよ。

あくまでJSで知りたいなら残念ですがちょっとコミュ違いです。
確かにコミュ違いですが、一応書いておきます。

>if(Mes[0])
何曜日でも、この条件に当てはまってしまいますので
3日後になってしまいます。
理由はお調べください。

んで、ざっと直すとこうですかね

<SCRIPT LANGUAGE="JavaScript">
<!--
now = new Date();
document.write(now.getMonth()+1,"月",now.getDate(),"日");

Mes=new Array(7);
Mes[0]="(日)中のご注文は";
Mes[1]="(月)午前9時までのご注文は";
Mes[2]="(火)午前9時までのご注文は";
Mes[3]="(水)中のご注文は";
Mes[4]="(木)午前9時までのご注文は";
Mes[5]="(金)午前9時までのご注文は";
Mes[6]="(土)午前9時までのご注文は";

myDate=new Date();
today=myDate.getDay();
document.write(Mes[today]);

if(today == 0 || today == 2 || today == 3 || today == 6){

now.setTime(now.getTime() + (3 * 24 * 3600 * 1000)); // n=3が日付です日
m = now.getMonth() + 1;
d = now.getDate();
document.write (m + "月" + d + "日");

}else{

now.setTime(now.getTime() + (2 * 24 * 3600 * 1000)); // n=2が日付です月
m = now.getMonth() + 1;
d = now.getDate();
document.write (m + "月" + d + "日");

}

// 曜日よって文字を変える
hoge=new Array(7);
hoge[0]="(水)";
hoge[1]="(水)";
hoge[2]="(金)";
hoge[3]="(土)";
hoge[4]="(土)";
hoge[5]="(日)";
hoge[6]="(火)";
document.write(hoge[today] + "からのお届けとなります");

//-->
</SCRIPT>
>あいでむさん

コミュ違い申し訳ありませんあせあせ(飛び散る汗)

>ケンケンさん

コミュ違いなのに教えていただきありがとうございます顔(願)さっそく試してみますぴかぴか(新しい)
>ケンケンさん

とても助かりましたわーい(嬉しい顔)ありがとうございますぴかぴか(新しい)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。