var date = new Date();
do {
var sel = date.toString();
document.write(sel + "<br>");
date.setDate(date.getDate()+1);
} while(date.getDate() != 2 && date.getMonth() != 2)
なぜこれは1月1日に停止するのですか?... 2ヶ月早く停止していますか?
var date = new Date();
do {
var sel = date.toString();
document.write(sel + "<br>");
date.setDate(date.getDate()+1);
} while(date.getDate() != 2 && date.getMonth() != 2)
なぜこれは1月1日に停止するのですか?... 2ヶ月早く停止していますか?
チェックhttp://jsfiddle.net/PYXeu/:2月は1であるので、数ヶ月がゼロをインデックス化していることに注意してくださいこれは、このような出力になります。
月1rstはのgetdate == 2.
編集持た:あなたは、これは2.02に行きたい場合はをhttp://jsfiddle.net/PYXeu/1/
.getDate
は2回目ですので、whileは実行できません。完了したら一度停止するには、3に増やす必要があります。
日付に追加する内容についてコード内で明示的に指定していた場合、それは害はありません。
でコードをチェックし、getMonthが0のときのgetDateが2であれば、なぜそれが実行できません? – Mantar
この条件はfalseと評価されるため、whileから脱落します。 getDate!= 2 - > false。 false && true == falseです。 –
3月または2日にヒットした場合、ループはもう実行されません。これは月が0から始まり、1月が0、12月が11であるからです。
JavaScriptは月が1月のインデックス0から始まります。必要に応じてループを調整する必要があります。
私は1月date.getMonth(1日に、月は0から始まると信じて)== 0、!= 2
それは1月1日に止まるべきではありません...条件は真です。 –
だからです!私は疑問を抱く必要があります。ありがとう。 –
1月2日で、最初の条件がfalseを返し、実行が停止しますので。
} while(date.getDate() != 2 || date.getMonth() != 1)
// Stops when day is 2 and month is 1 (February)
または::
} while(!(date.getDate() == 2 && date.getMonth() != 1))
どちらも同じことを意味私は、スクリプトがあなたの条件は次のようになります。その場合には、2月2日にすべての方法を、継続したいと仮定します。
...
Fri Jan 28 2011 14:57:00 GMT+0200
Sat Jan 29 2011 14:57:00 GMT+0200
Sun Jan 30 2011 14:57:00 GMT+0200
Mon Jan 31 2011 14:57:00 GMT+0200
Tue Feb 01 2011 14:57:00 GMT+0200
もちろん。 &&。getMonthが0の場合、なぜそれは問題になるのですか? – Mantar
'getMonth()== 2 '、または' getDate()== 2'のときに 'while'はあなたのコードで止まります。私のコードでは、 'getMonth()== 1'と 'getDate()== 3')の両方で停止します。 http://en.wikipedia.org/wiki/De_Morgan's_lawsを確認してください –
Ohh interesting。私はリンクを感謝します! – Mantar