繁体   English   中英

自定义DateTime日长度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM