在JS练习题中,有这么一道:
请计算某天是这一年的第几天。
首先,我们要看此年是否闰年
var IsLeapYear = function (year) {
var flag = false;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
flag = true;
return flag;
};
其次,累加每月天数。
for (var i = 0; i < month - 1; i++) {
iDay += months[i];
}
其中months为数组
var months = new Array(31, day2, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
day2如果是闰年赋值29,否则28。
if (IsLeapYear(iYear)) {
day2 = 29;
} else {
day2 = 28;
}
js code
tsc calDay.ts
calDay.ts
class MY {
DayOfYear(year: number, month: number, day: number) : number {
let day2 : number = 0;
let iDay : number = 0;
let date = new Date();
date.setFullYear(year, month, day);
let iYear : number = date.getFullYear();
let IsLeapYear = function (year: number) {
let flag : boolean = false;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
flag = true;
return flag;
};
if (IsLeapYear(iYear)) {
day2 = 29;
} else {
day2 = 28;
}
let months = new Array(31, day2, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
for (let i = 0; i < month - 1; i++) {
iDay += months[i];
}
iDay += day;
this.SetInputVal(iDay);
return iDay;
}
SetInputVal (value: any) {
let val : any = <HTMLInputElement>document.getElementById("daySum");
val.value = value;
}
}
calDay.js
/*
* xiaobin in SYSIT schools completed
*/
var MY = {};
MY.DayOfYear = function(year, month, day) {
var day2 = 0;
var iDay = 0;
var date = new Date();
date.setFullYear(year, month, day);
var iYear = date.getFullYear();
var IsLeapYear = function (year) {
var flag = false;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
flag = true;
return flag;
};
if (IsLeapYear(iYear)) {
day2 = 29;
} else {
day2 = 28;
}
var months = new Array(31, day2, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
for (var i = 0; i < month - 1; i++) {
iDay += months[i];
}
iDay += day;
SetInputVal(iDay);
return iDay;
};
function SetInputVal (value) {
var val = document.getElementById("daySum");
val.value = value;
};
calDay.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Example01</title>
<script type="text/javascript" src="calDay.js" > </script>
</head>
<body>
<p>
</br>
<input type="text" id="daySum" >
<input type="button" id="test02" value="cal day" onClick="MY.DayOfYear(2000, 2, 8)">
</br>
<input type="button" id="test03" value="cal day (type-script)" onClick="MY.prototype.DayOfYear(2000, 2, 8)">
</p>
</body>
</html>