所以我有一个对象(活动),我允许用户选择一个活动的开始日期和到期日期。如何确定当前日期是否在不包括一年的两个日期的范围之内/之外?
用户基本上是一个为公众提供活动的中心/中心。
他们可以选择使这些活动季节性。例如,一项活动可能从2月1日到6月22日。我使用当前日期以及一堆代码来确定活动是否在季节。
因此,例如我检查当前日期271014是否大于开始日期020114并且小于到期日期062214.如果是,则表示日期在范围内。
问题:
我不得不做出改变,所以现在用户必须选择一个每月只有一天。这是好的,直到他们选择像11月1日至2月28日之类的东西。 这些日期将采用格式1101和2802.
没有这一年,这显然给了我不同的结果。有了这一年,我可以确定2月28日的有效期是开始日期之后的一年,而不是同一年。然后,在确定当前日期是否在开始日期和到期日期之内时,我会得到预期的结果。如果没有这一年,到期日现在实际上不会超过开始日期,即使它应该是。
目前我在做什么
我怎么解决这个问题呢?我真正需要的是允许用户设置开始日期和到期日期。仅当当前日期在范围内时,活动才会以表格视图显示。
如果只选择了过期日期,那么活动将保持活动状态,直到达到过期日期。即使我设定和有效期为2月28日,我们在11月。同样的需求也适用于开始日期。
希望能在这里有所了解。
谢谢你的时间。
如果你把月份放在第一位(正如我在上一个问题http://stackoverflow.com/a/26451356/1187415的答案中所建议的那样),那么你的开始=“1101”和到期=“0228”,并且很容易发现到期日在下一年。 – 2014-10-27 20:05:41
我目前把这个月放在第一位,并且遇到了上面提到的问题。然后,我决定改为包括一年,但现在我只能使用月和日。我现在很难提出用一年的时间来检测下一年的逻辑。今天是1027,所以我们假设我们想要使用上面的开始日期和到期日期。下个月(比如1102)将大于1101,但也大于0228,这意味着它不会在开始和结束日期的范围内。这是我的问题。 – LondonGuy 2014-10-27 20:11:28
任何你不能用分隔符分隔m/d并将它们存储在数组中的原因?你最终会得到'@ [@(11),@(02)]',你会知道第一个对象是一天,而第二个是这个月。 – brandonscript 2014-10-27 20:13:05