代码之家  ›  专栏  ›  技术社区  ›  Carles Company

以C表示的确认工作时间的时间跨度#

  •  1
  • Carles Company  · 技术社区  · 14 年前

    谢谢。

    编辑

    我需要与timespan相同的功能,但具有可配置的日持续时间。加,减,…,应该考虑到这一点。我试图延长时间跨度,但它是密封的。也许我应该按照Oded的建议(或者类似的方法)使用一些扩展方法来实现这一点。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Oded    14 年前

    如果你只想把每天计算成8小时,你可以这样做:

    return TimeSpan.TotalHours / 3;
    

    更新:

    既然你提供了更多的细节,我建议 时间跨度与您自己的类型-您可以有一个 HoursInWorkingDay 属性,该属性允许您配置工作日的小时数。

    拥有一个接受时间跨度并将其分配给可用于计算的私有时间跨度的构造函数:

    public class WrappedTimeSpan
    {
        private TimeSpan ts;
        private int hoursInDay = 8;
    
        public WrappedTimeSpan(TimeSpan origTS)
        {
            ts = origTs;
        }
    
        public WrappedTimeSpan(TimeSpan origTS, int hoursInDay) : this(origTs)
        {
            hoursInDay = hoursInDay;
        }
    
        public int HoursInDay { get;}
    
        public int WorkingHours { get { return ts.TotalHours / hoursInDay; }}
    }