티스토리 뷰

년도 일수 체크 (윤달체크)


//윤달 계산
function f_leapyear(yy) {
	if (yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0)
		return 1;
	else
		return 0;
}
// Check how many days there are on the inputted year and month
// 년과 달을 입력하면, 한달에 몇일이 있는지 확인하는 함수입니다.
function f_dayofmonth(yy, mm) {
	switch (mm) {
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		return 31;
	case 4:
	case 6:
	case 9:
	case 11:
		return 30;
	case 2:
		return 28 + f_leapyear(yy);
	}
}
function day_cal(yy, mm, dd) { //해당년도만의 일수 계산
	var tot = 0;
	for (var i = 1; i < mm; i++) {
		tot += f_dayofmonth(yy, i);
	}
	return tot + dd;
}
function getDiffDay(val1, val2) { //날짜 일수 계산
	var sdate_year = Number(val1.substr(0, 4));
	var sdate_month = Number(val1.substr(5, 2));
	var sdate_day = Number(val1.substr(8, 2));
	var edate_year = Number(val2.substr(0, 4));
	var edate_month = Number(val2.substr(5, 2));
	var edate_day = Number(val2.substr(8, 2));
	var year_result = edate_year - sdate_year;

	var tot = 0;

	tot += year_result * 365; //년도 차이 일수 계산
	tot += -day_cal(sdate_year, sdate_month, sdate_day) + 1; //시작 날짜 일수 계산
	tot += day_cal(edate_year, edate_month, edate_day); //종료 날짜 일수 계산

	return tot;
}
alert(getDiffDay('20090101', '20090131'));
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함