[在芬兰,就像在许多国家一样,我们用不同的名字来命名天。
[我正在尝试编写一个Ubersicht应用程序以显示一年中的那天以及那天的名称。
[我带来了年中的天(%j
)和年(%Y
),将它们分开以便可以操纵它们,并发现a way在CoffeeScript中找到a年。
但是,由于leap年多了一天,因此2月29日不是一个命名日(以及1月1日和12月25日),所以我想显示“今天没有名称!”在那些日子里,无论是不是a年。
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: 'unexpected when'
。
我对构建小部件还很陌生(我知道如何在Python中做到这一点,并且我的switch语句遇到了一些困难。
[我也曾尝试输入月份(%d
)和月份号(%e
),但在那里我遇到了类似的问题(当条件为月份= 3且日期= 5(5月5日)时会成倍增加)无法正常工作。
任何帮助将不胜感激。正如我所说,我是CoffeeScript的新手,所以也将不胜感激。
您可能想重读switch
syntax
switch
但是,更简单的解决方案是使用数组。(这与Coffeescript不太相关,但通常适用于编程方面的思考。)
# your code
yearday = switch # <missing switch on what here>
when (leapyear and yearday is [1, 60, 360]) then "No names today!"
else # again wrong syntax, can't when inside else
when yearday is 2 then " Aapeli " # 'yearday is' is superfluous
# corrected
yearday = switch leapyear
when 2 then 'Aapeli'
when 3
if additional_conditionals then A else B
when 4 then 'Ruut'
(顺便说一句,请删除有关芬兰日的其他信息,这是无关紧要的。。]
欢呼:)