如何在javascript中显示两年之间的所有闰年
How do I display all the leap years between two year in javascript
如何创建一个HTML页面,该页面接受用户输入到文本字段中的1900到2012之间的整数。当用户按下"显示"按钮时,用JavaScript创建的函数应该能够显示输入整数和2012之间的所有闰年。
示例:
当用户在文本字段中输入"1970"时,结果为:
1972197619801984198819921996200020042008
我有这样的代码
var str = '';
var i;
for ( i = 1970; i < 2012; i += 1 ) {
if ( new Date( i, 1, 29 ).getMonth() === 1 ) {
str += '<p>' + i + '</p>';
}
}
document.body.innerHTML = str;
我不明白怎么把这个功能和按钮联系起来?
我假设您想计算1582年引入的公历中的闰年。在公历中,400年中有97个闰年。
每一年被4整除,但不是100,而是400是闰年。1600和2000是,但不是1700、1800、1900。
以下是一个考虑到公历闰年所有规则的解决方案:
for (var i=1890; i < 2010; ++i) {
if (!(i%4)&&(i%100)||!(i%400) ) console.log(i);
}
该规则也可以写成
( ( (year % 4) == 0) && ( (year % 100) !== 0)) || ( (year % 400) ==0)
为了能够将其绑定到一个按钮,您必须将其放入一个函数中:
function printLeapYears() {
//Do your thing here
}
然后你必须把它绑在你的纽扣上。例如
<button type="button" onclick="printLeapYears()">print leap years</button>
还有其他方法可以将函数绑定到按钮。由于这是一个家庭作业问题,我不知道你是否熟悉ids和document.getElementById
,所以这个解决方案可能就足够了。
为了好玩,这里有一种只测试可被四整除的年份的方法:
function getLeapYears(start, end) {
var startYear = Math.ceil(start / 4) * 4;
var endYear = Math.floor(end / 4) * 4;
var leapYears = [];
if (isNaN(startYear) || isNaN(endYear)) return ['Invalid input'];
while (startYear <= endYear) {
if ( startYear % 100 || !(startYear % 400)) {
leapYears.push(startYear);
}
startYear += 4;
}
return leapYears.length? leapYears : ['None'];
}
这里有一种方法(有些人可能会说不是"最佳实践")可以把它放在一个页面上:
Start year: <input id="i0"><br>
End year: <input id="i1"><br>
<button onclick="
var start = document.getElementById('i0');
var end = document.getElementById('i1');
var el = document.getElementById('s0');
if (start && end && el) {
el.innerHTML = getLeapYears(start.value, end.value).join('<br>');
}
">List leapyears</button><br>
<span id="s0"></span>
相关文章:
- 如何在javascript中获取两个日期之间的周六和周日的日期
- javascript中两年之间的小时差(带闰年)
- 在Google Analytics中跟踪用户,但只能在两个操作之间跟踪
- 如何在两个不同的iframe HTML之间进行通信
- 有效地获取两个区间之间的随机整数
- 如何在javascript中显示两年之间的所有闰年
- 如何用moment.js列出两个日期之间的所有月份
- JavaScript函数,用于计算两个日期之间的年、月和天数
- 我如何用Javascript计算两个日期之间的年、月和天的差异
- 检测超过两年的浏览器
- 如何在Protractor中比较两个窗口之间两个元素的值
- 如何在JavaScript中获得两年的月份范围
- 如何在表格中计算两个日期之间的差值?日期(日、月、年)在3个不同的下拉框中
- 如何计算两个日期之间的年数?
- JS time -为两个日期之间的每一年创建一个数组
- 我如何计算“季度”的数量?这是在两个日期之间过去的,这里的季度不是简单的一年的一个季度,而是具体的日期
- 如何计算出两个日期之间的年数和剩余天数
- 查找以年为单位的两个日期之间的差异
- JavaScript计算两个日期之间的差异,在年,月,日,小时,分钟
- 重构if/else语句,时间跨度在两年之间