代码谜题:颜色旋转器


 

距离我上一个ColdFusion Friday的谜题已经有一段时间了,所以我 。 希望你喜欢这个。我是在开车送我的大女儿去 学校时想到的。 在我 "还没有完全清醒 "的半清醒状态下,我想到了这个问题。 在我 "还没有完全清醒 "的半**状态下,这似乎是一个偷偷摸摸的小难题。我想出了一个可能的 。 简单的解决方案,但我很好奇,想看看别人怎么 。 做出的解释。准备好了吗?

你的客户希望他们的网站使用一个旋转的颜色 背景。每一天,网站的背景颜色都会改变。 用于背景的颜色列表是。 红,蓝,绿,黄,橙。(我知道,我知道,这就是为什么我不做网页设计。 网页设计)。

你的目标是写一个UDF,接受一个日期并选择一种颜色。 选择一种颜色。如果你通过了最初的日期后的那一天,你应该 在列表中选择下一天。在你选择橙色的那一天,接下来的一天 就会选择红色。

你可能会想--为什么不简单地用一周中的某一天加上5来计算?

<cfset colors = ["red","blue","green","yellow","orange"]>

<cfloop index="x" from="0" to="15">
  <cfset day = dateAdd("d", x, now())>
	<cfset color = colors [ (dayOfWeek(day) mod 5) + 1]>
	<cfoutput>#color#<br/></cfoutput>
</cfloop>

但这在边缘上不起作用。你可以换成 年月日,但也会有同样的问题(虽然少了很多 少)。那么,你将如何解决这个问题?请注意,你不能在数据库(或文件系统)中持久化 任何东西在数据库中(或文件系统,等等)。