你需要在給出的年份中找到感恩節(jié)的月份和日期。
下面的函數(shù)返回給出年份的感恩節(jié)的日期。如果沒(méi)有給出任何參數(shù),給出的結(jié)果是當(dāng)前年份。
美國(guó)的感恩節(jié)是十一月的第四個(gè)星期四。
thanksgivingDayUSA = (year = (new Date).getFullYear()) ->
first = new Date year, 10, 1
day_of_week = first.getDay()
22 + (11 - day_of_week) % 7
加拿大的感恩節(jié)是在十月的第二個(gè)周一。
thanksgivingDayCA = (year = (new Date).getFullYear()) ->
first = new Date year, 9, 1
day_of_week = first.getDay()
8 + (8 - day_of_week) % 7
thanksgivingDayUSA() #=> 24 (November 24th, 2011)
thanksgivingDayCA() # => 10 (October 10th, 2011)
thanksgivingDayUSA(2012) # => 22 (November 22nd)
thanksgivingDayCA(2012) # => 8 (October 8th)
這個(gè)想法很簡(jiǎn)單: