상호작용이 있기 때문에 이를 구현하기 위해 Js를 선택했습니다. 이는 페어 프로그래밍의 첫 시도라고 볼 수 있습니다. 표시 부분은 html로 작성하겠습니다. 클릭한 버튼에 의해 발생하는 이벤트 함수는 check()입니다.
function onCheck(){
var Year = document .getElementById("year").value; //텍스트 상자의 "연도"를 가져옵니다. var theYear =Year * 1; //숫자 유형으로 변환 //alert(theYear);
var Month = document.getElementById("month");
var index1=month.selectedIndex; var theMonth = Month.options[index1].value; //월별 값 가져오기
var day = document .getElementById("day") ;
var index2=day.selectedIndex;
var theDay = day.options[index2].value;
//값 판단 부분
...
//핵심 함수 호출
days(theYear,theMonth,theDay)
}
핵심 기능 요일은 다음과 같습니다.
함수일(년,월,일) {
var days = 0; //날짜가 변경되는 일자를 나타냅니다.
//월의 일수를 더합니다.
for(var i = 1; i < Month; i ){
switch(i) {
//큰 달에 31을 추가합니다
사례 1:
사례 3:
사례 5:
사례 7:
사례 8:
사례 10:
사례 12:{
days = 31;
break;
}
//Xiaoyue의 경우 30을 더합니다
사례 4:
사례 6:
사례 9:
사례 11:{
days = 30;
break;
}
//2월은 연도 유형에 따라
추가 사례 2:{
if( isLeapYear(year)){
days = 29; //윤년에는 29를 더합니다
}
days = 28;
}
break;
}
}
}
일 = 일 * 1;
일 = 일; //월 일수 더하기 일수
var date0 = new Date(year,0,1); //해의 첫 번째 요일은 무엇입니까?// Alert(date0.getDay());
var date1 = new Date(year ,month-1,day); //날짜 값 형식을 지정합니다. 0~11은 1월~12월을 나타냅니다.
// Alert((days date0.getDay() 6)/7);
var nthOfWeek = Math.floor((days date0.getDay() 6)/7); // 반올림
// Alert(nthOfWeek);
var toDay = new Array("Sunday","week "1", "화요일", "수요일", "목요일", "금요일", "토요일")
//day.getDay(); 날짜를 기준으로 요일을 반환합니다. 여기서 0은 일요일입니다.
Alert("이 날짜는 해당 연도의 "일"입니다.
" " " nthOfWeek " 주 " toDay[date1.getDay()]);
}
디버깅 과정에서 숫자 반올림 문제 등 유형 불일치로 인한 계산 오류 등 예상치 못한 오류가 많이 발생했습니다. 마지막 단계에서 입력 값 테스트를 진행하면서 서로 도움을 주고, 다양한 입력 상황을 분석하고, 발생할 수 있는 다양한 사고를 처리하고, 기능 개선을 빠르게 완료했습니다. >입력값 허용 여부를 판단하는 코드는 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.if (isNaN(theYear)|| theYear < 0 ) { Alert("잘못 입력했습니다. 다시 입력해 주세요.");
return ;
}
if((theMonth == 2 && theDay > 29 && isLeapYear(theYear))||(theMonth == 2 && theDay > 28 && !isLeapYear(theYear))) {
Alert("예를 입력하세요. 틀렸습니다. 다시 입력해 주세요.");
return ;}
if((theMonth == 4 || theMonth == 6 || theMonth == 9 || theMonth == 11) && theDay == 31 ) {
Alert("잘못 입력했습니다. 다시 입력해 주세요." );
반환 ;
}