[英]Custom DateTime day length
我有一个控件,您可以将元素拖动到Gantt
timetable
。 当天最短时间是8 am
,最高时间是4 pm
。 有没有一种优雅的方式,我可以告诉DateTime
结构采用这个时间间隔而不是24 hour one
?
你肯定不能改变DateTime现有方法的行为,但扩展方法在这里会派上用场。
根据您的要求,如果您在当前日期添加8小时,则希望日期前进24小时。 (如果我的理解不对,请纠正我)。
您可以使用AddWorkHours创建Extension方法(或者可能更适合您的命名约定),这将花费数小时作为输入(例如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);
}
}
您只需要确保在适当的地方呼叫正确的方法。 我希望这至少会给你一些解决问题的想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.