CoffeeScript中的多条件when语句出现问题

CoffeeScript中的多条件when语句出现问题,coffeescript,Coffeescript,在芬兰,和许多国家一样,我们有不同名字的命名日 我正在尝试编写一个Ubersicht应用程序来显示一年中的哪一天,以及那一天的名称 我带来了一年中的哪一天(%j)和哪一年(%Y),将它们分开,这样我就可以操纵它们了,并且在CoffeeScript中找到了闰年 然而,由于闰年有额外的一天,2月29日不是命名日(连同1月1日和12月25日),所以我想在那些日子里显示“今天没有名字”,无论是闰年还是非闰年 command: "date +%j,%Y" update: (output) ->

在芬兰,和许多国家一样,我们有不同名字的命名日

我正在尝试编写一个Ubersicht应用程序来显示一年中的哪一天,以及那一天的名称

我带来了一年中的哪一天(
%j
)和哪一年(
%Y
),将它们分开,这样我就可以操纵它们了,并且在CoffeeScript中找到了闰年

然而,由于闰年有额外的一天,2月29日不是命名日(连同1月1日和12月25日),所以我想在那些日子里显示“今天没有名字”,无论是闰年还是非闰年

command: "date +%j,%Y"  

update: (output) ->
  dateString = output.split(',')

  yearday = parseInt(dateString[0])
  year = dateString[1]

  leapyear = (year % 400 == 0) or (year % 4 == 0 && year % 100 != 0)


  # The Switch statement
  yearday = switch
      when (leapyear and yearday is [1, 60, 360]) then "No names today!"
      else 
        when yearday is 2 then " Aapeli "
        when yearday is 3 then " Elmer, Elmo "
        when yearday is 4 then " Ruut "

        ... and so on
我遇到的问题是,我得到了一个
ParseError:“当”
时,它是意外的

我对构建小部件非常陌生(我知道如何在Python中实现这一点),我在使用switch语句时遇到了一些困难

我也尝试过引入月日(
%d
)和月号(
%e
),但我在那里遇到了类似的问题(多个条件,例如,当月=3和日=5(5月5日)不起作用时)

任何帮助都将不胜感激。正如我所说的,我对CoffeeScript还不熟悉,所以也非常感谢您的解释。

您可能想重读一遍

yearday=开关年
当2然后是“Aapeli”
当3
如果是附加条件,则A或B
当4时,则“Ruut”
否则“今天没有名字!”
#else是默认值,不能在此处嵌套其他when语句
但是,更简单的解决方案是使用数组。 (这并不完全是关于Coffeescript的,但适用于一般的编程思想。)

dayNames=['','Aapeli','Elmer,Elmo','Ruut']
dayName=(day)=>切换日期
当0时,则“失败,无第0天”#可选
当1、60、360时,那么“今天没有名字!”
else“day{day}的名称是{dayNames[day]}。”
#另外,不要预写空格。
#改为使用如上所述的字符串操作
#(注意单引号和双引号之间的区别)
console.log dayName 4
#“第四天的名字是鲁特。”
console.log dayName 60
#“今天没有名字!”
(顺便说一句,请删除有关芬兰日的额外信息,这与此无关。)

干杯:)

你可能想重读一遍

yearday=开关年
当2然后是“Aapeli”
当3
如果是附加条件,则A或B
当4时,则“Ruut”
否则“今天没有名字!”
#else是默认值,不能在此处嵌套其他when语句
但是,更简单的解决方案是使用数组。 (这并不完全是关于Coffeescript的,但适用于一般的编程思想。)

dayNames=['','Aapeli','Elmer,Elmo','Ruut']
dayName=(day)=>切换日期
当0时,则“失败,无第0天”#可选
当1、60、360时,那么“今天没有名字!”
else“day{day}的名称是{dayNames[day]}。”
#另外,不要预写空格。
#改为使用如上所述的字符串操作
#(注意单引号和双引号之间的区别)
console.log dayName 4
#“第四天的名字是鲁特。”
console.log dayName 60
#“今天没有名字!”
(顺便说一句,请删除有关芬兰日的额外信息,这与此无关。)


干杯:)

parserror
表示您正在编写它无法理解的内容,即语法错误。它还告诉您它在哪一行遇到了问题(并停止,因此,在您修复第一个错误之前,您不知道是否还有错误)。
parserror
表示您正在编写它无法理解的内容,即语法错误。它还告诉您它在哪一行遇到问题(并停止,因此,在您修复第一个错误之前,您不知道是否还有其他错误)