具有排除项的 C# 时间跨度
本文关键字:时间跨度 排除 | 更新日期: 2023-09-27 18:31:41
我知道这可能是不可能的,但有谁知道 .NET 中是否有任何快捷方式或机制允许我这样做。
我有一本"日记"
上午9时至下午5时
在这本日记中,我有事件或"约会"
上午10时至中午12时 - 预约1
下午1时至下午1时30分 - 预约2
所要求的是有一个工具,我可以反转日记,为我提供这些约会之外的自由空间。
例如,它会向我返回一个列表
上午9时至上午10时
中午12时至下午1时
下午1时30分至5时
这样我就可以在我的程序中使用。
有什么想法吗?
你可能想要查看这篇 CodeProject 文章:.NET 的时间段库,特别是TimeGapCalculator
示例。
是的,有!我强烈建议使用CodeProject中名为TimePeriod的免费库。
此库将处理
自己实现似乎并不难:
- 按开始日期对日记约会进行排序。
- 从开始日记>第一次预约有一个免费时段
- 从最后一次预约>结束日记起一个免费时段
- 迭代约会,中间的每个时间段都是一个空闲期