我有一个控件,您可以将元素拖入Gantt
,如timetable
。当天最低时间为8 a.m
,最高时间为4 p.m
。有没有一种优雅的方式,我可以告诉DateTime
结构采取这个时间间隔,而不是24 hour one
?自定义日期时间天长度
回答
您当然不能改变DateTime现有方法的行为,但扩展方法在这里会派上用场。
根据您的要求,如果您将当前日期添加8小时,则您希望日期向前移动24小时。 (如果我的理解不正确,请纠正我)。
您可以使用AddWorkHours创建扩展方法(或者可能更适合您的命名约定),它将以小时数作为输入(例如8),但实际上将24小时添加到当前日期。
该代码将如下所示。
public class DateTimeExtensions
{
public static DateTime AddWorkHours(this DateTime dateTime, int workHours)
{
var workHoursPerday = 8; //Here 8 also can be configurable value if you have different working hours for different customer.
var daysToAdd = (int) workHours/workHoursPerday; //You can have validation here to check if workHours are in exact multiplex of 8.
//Also you can have rounding off logic.
dateTime.AddDays(daysToAdd);
}
}
你只需要确保在正确的地方调用正确的方法。 我希望这至少会给你一些想法来解决你的问题。
这是一个很好的尝试,但我没有看到这个代码修复的问题 –
这是一个通用的逻辑。您可以随时根据业务需求定制逻辑。检查一周中的哪一天会改变添加的天数也会解决周末问题。 –
确实...它不能解决这个特定的问题,但作者可以将它用作提示并对其进行定制以适应需求。 –
- 1. 自定义日期时间,将当前日期添加30天
- 2. MySQL Query自定义日期时间
- 3. 自定义SQL日期时间格式
- 4. Xamarin.Forms自定义日期时间BindableProperty BindingPropertyChangedDelegate
- 5. 自定义日期时间结构
- 6. 自定义长日期格式js
- 7. SQL Server的日期时间的自定义日期
- 8. 日期和时间选择自定义格式日期变更
- 9. 如何将日期时间字符串转换为自定义日期时间
- 10. 时间今天的日期
- 11. 在python中自定义日期时间对象的时间
- 12. 调度程序时间线日期长时间捕捉事件
- 13. 时间戳到长日期时间
- 14. 日期时间自定义格式并不如预期
- 15. Seaborn light_palette自定义长度
- 16. Knockout自定义绑定的日期时间部分
- 17. 日期时间和日期格式之间的差异天数
- 18. 日期/时间维度
- 19. 衣日期时间调度
- 20. 确定日期差距给定日期列表的长度
- 21. 时间跨度两个日期时间
- 22. 将自定义日期格式(字符串)转换为日期时间
- 23. C#日期时间到SQL日期时间丢失精度
- 24. c#比较日期时间日期与时间跨度参数
- 25. Java的日期(日历)计算,每天在给定的日期时间
- 26. 检查当前的日期/时间匹配定义的时间跨度
- 27. 有多少天在给定时间跨度期间已发生
- 28. 产品表中的自定义日期时间列被覆盖
- 29. 日期时间范围自定义过滤器不工作
- 30. 自定义日期时间XML序列化
TimeSpan结构是否用于时间跨度? –
是的。但这不是重点。如果我将8小时添加到“DateTime”中,它应该与添加1天具有相同的效果 – Andro
我认为他想要做的是在基于从8开始到16结束的日期对结构进行时间计算(并且可能采用在周末也是如此),并提出像最早开始时间这样的问题XXX任务有30个小时的工作......什么时候完成? – DarkSquirrel42