2010-12-08 4 views
0
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 개월 빨리 멈추는 동안?

답변

2

확인 http://jsfiddle.net/PYXeu/합니다.

월 1rst은 GETDATE의 ==에게 있습니다 2.

편집 :이이 http://jsfiddle.net/PYXeu/1/

+0

물론. &&. getMonth가 0 일 때 그 이유는 무엇입니까? – Mantar

+1

코드에서 'while'은'getMonth() == 2 '또는'getDate() == 2'일 때 멈출 것이다. 내 코드에서 그것은'getMonth() == 1'과'getDate() == 3' 둘 다 멈출 것이다. http://en.wikipedia.org/wiki/De_Morgan's_laws을 확인하십시오. –

+0

Ohh interesting. 나는 링크를 주셔서 감사합니다! – Mantar

1

두 번째 반복에서 .getDate은 2이므로 while을 실행할 수 없습니다. 완료되면 중지 시키려면 3으로 늘려야합니다.

날짜에 추가하는 내용에 대해 코드에 명시 적으로 명시한 경우에도 해를 입히지 않습니다.

+0

에서 2.02 체크 코드로 이동 GETDATE 2의 경우 속하는 getMonth가 0 일 때 왜 실행할 수 없습니다 원하는 경우 ? – Mantar

+0

그 조건은 false로 평가되기 때문에 while에서 빠져 나옵니다. getDate! = 2 -> false. false && true == false. –

0

3 월이나 2 월에 치면 루프가 더 이상 실행되지 않습니다. 이것은 월이 0부터 시작하여 1 월이 0이고 12 월이 11이기 때문입니다.

0

자바 스크립트에서 월은 1 월에 색인 0에서 시작합니다. 필요에 따라 루프를 조정해야합니다.

0

는 몇 달 그렇게 월 date.getMonth() == 0의 1에 0에서 시작 믿는! =

+1

그래서 1 월 1 일에 멈추지 않아야합니다 ... 조건이 참입니다. –

+0

그렇습니다! 나는 그 질문에 대해 안주를해야만한다. 감사. –

3

1 월 2 일에 첫 번째 조건이 거짓 반환하고 실행이 중지되기 때문에 2.

} 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 모든 방법을 계속하려는 가정합니다. 2 월이이 같은 출력 결과 1. 그래서 달이 제로 색인 참고 :

... 
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 

http://jsfiddle.net/MF7bR/

+0

첫 번째 것은 getDate == 2 또는 getMonth == 1.에서 멈춰야합니다. 어느 것이 이해가되지 않습니다. 두 번째 것은 1 월 1 일에 끝납니다. – Mantar

+0

@Meke, 당신이하려는 일에 대해 설명해 주시겠습니까? 그리고 제가 제공 한 예제는 유효하고 작동하며 정확히 똑같은 것을 의미합니다. 둘 다 2 월 1 일에 끝납니다. 내가 올린 URL을보십시오. –

+0

@Meke, 이런 식으로 주석을 작성하기 전에 코드를 테스트해야합니다. @Tatu Ulmanen이 첫 번째 문장에 맞습니다. 이해가됩니다. – codea

관련 문제