Javascript 如何自动计算给定年份的日期?

Javascript 如何自动计算给定年份的日期?,javascript,html,Javascript,Html,HTML: 在输入文本字段中输入年份(例如2004年)。如何使用JavaScript自动计算圣诞节将在一周中的哪一天到来?如果可以将年份输入指定给变量 var year = 2004 // Year entered into field input 然后,您可以执行以下操作以获取特定假日的星期几: // Use this array to create day of the week names: var dayStringArray = ["Sunday", "Monday", "Tuesd

HTML:


在输入文本字段中输入年份(例如2004年)。如何使用JavaScript自动计算圣诞节将在一周中的哪一天到来?

如果可以将年份输入指定给变量

var year = 2004 // Year entered into field input
然后,您可以执行以下操作以获取特定假日的星期几:

// Use this array to create day of the week names:
var dayStringArray = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

// Create date of holiday with year entered.
var xmas = new Date(year, 11, 25); // 11 is for December (i.e. 12 - 1)
// This creates a Date object of Dec 25th, 2004

// Get day of week in 0 - 6 integer, then use array to get day text.
var xmasDayString = dayStringArray[xmas.getDay()];

console.log(xmasDayString); // Outputs "Saturday"
关于

  • Date
    constructor,请参阅
  • Date.prototype.toString
    ,请参阅
  • .toLocaleDateString
    ,请参阅
演示

  • (jQuery仅用于DOM操作)

半半半字节非常接近,但不必要地使用字符串解析而不是离散值

function getChristmasDayName(year) {
  var dayNames = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
  var d = new Date(year, 11, 25);
  d.setFullYear(year); // required to support years 0 to 99
  return dayNames[d.getDay()];
}

alert(getChristmasDayName(2004)); // Saturday

以上采用英文日名和公历。对其他语言的支持将需要该语言中的其他日名称数组。对其他日历的支持将需要更多的工作。

通过谷歌搜索:请不要参考。参考ECMA-262、MDN或MSDN(视情况而定)。@christopher请不要链接到w3schools.com@wumm-w3愚人网?是那个过时的网站告诉w3schools去维基化他们的内容,但他们并没有在自己的网站上这样做吗?W3Schools在过去几年中改进了很多资料,甚至W3Stools的创建者/贡献者都知道这一点。他们承认w3schools实际上并没有那么糟糕,他们甚至删除了所有“证明”w3schools数据不准确的示例。Date.prototype.toString依赖于实现,没有理由相信默认情况下它会将日期名称放在第一位或符合任何特定格式。
function getChristmasDayName(year) {
  var dayNames = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
  var d = new Date(year, 11, 25);
  d.setFullYear(year); // required to support years 0 to 99
  return dayNames[d.getDay()];
}

alert(getChristmasDayName(2004)); // Saturday