日历日视图逻辑

时间:2011-03-07 06:46:08

标签: c# windows-phone-7 calendar

我不知道我的逻辑是否正确,但我正试图从头开始实施日历日视图。并且为了在同一时间实现相同空间的共享,对我来说有点棘手。

我有一份时间清单:

一个。凌晨1点 - 凌晨2点

B中。凌晨1点 - 凌晨2点30分

℃。凌晨1点30分 - 凌晨3点

所以基本上A-C的共同时间是凌晨2点,所以他们需要在同一个空间共享。那么如何做到这一点呢?

2 个答案:

答案 0 :(得分:0)

这并不难。您应该计算重叠的任务,分配给广告绘制的列。在您的示例中,我们有3个重叠的任务。这意味着您必须为代表每个任务的框创建3列。

一个。凌晨1点 - 凌晨2点 上午1点 - 凌晨2点30分 C. 4.30am - 3am

此示例创建了2列,因为我们只有2个重叠的任务。

现在,当您循环计数重叠的任务时,您可以将每个任务分配给指定的列。当需要新列时 - 创建它。

下一个循环仅在指定的列中绘制此框。如您所见,我们必须循环:一个用于计数重叠和分配列,第二个用于绘制。

答案 1 :(得分:0)

继续我在网上搜索的内容

检查重叠:

让CondA平均DateRange完全在DateRange B之后(如果StartA> EndB则为真) 设CondB平均DateRange A完全在DateRange B之前(如果EndA< StartB则为真)

如果A Nor B都不成立则存在重叠(如果一个范围既不完全在另一个范围之后,也不完全在另一个之前,则它们必须重叠)

现在deMorgan的法律,我认为是,

不(A或B)< =>不是A而不是B

这意味着(StartA< = EndB)和(EndA> = StartB)

注意:这包括边缘完全重叠的条件。如果您希望将其排除,请将> =运算符更改为>,然后将< =更改为<


因此,根据重叠值,我可以确定应添加多少列。