如何获得最后的计数或一天中的最后一次时间

时间:2018-08-31 07:31:06

标签: c#

我在查找下面一天中的最后一次(这是最大的时间)图片时遇到问题,如何获得该时间? 我必须将此时间与他的班次进行比较,但是当我这样做时,我总是第一次阅读。

这是我的代码:

 foreach (var shift in shifts)
        {  
            if (von.ZPZ_Von <= shift.Arbeitsbeginn.AddMinutes(-20) &&
                bis.ZPZ_Bis >= shift.Arbetsende.AddMinutes(-10))
                return null;

            else if (von.ZPZ_Von >= shift.Arbeitsbeginn.AddMinutes(20) &&
                 bis.ZPZ_Bis >= shift.Arbetsende.AddMinutes(10))
                return null;

            else if (von.ZPZ_Von <= shift.Arbeitsbeginn.AddMinutes(5)
               && bis.ZPZ_Bis <= shift.Arbetsende.AddMinutes(10)
               )
                return shift;

        }

这是一种找到工作人员轮班的方法,如果工人在正确的轮班中返回班次,则如果该工人来20分钟或工作超过10分钟,则返回null。

这看起来像是一天的数据:

enter image description here

因此,我需要将ZPZ_Bis与最后一个时间进行比较。 此刻,我的方法始终将ZPZ_Bis与第一个出发时间i相比较。 1899-12-30 09:52:00.000在这种情况下。

如果有人可以帮助我解决这个问题,我将不胜感激,我最近几天还不知道该如何处理。

这是我的整个方法:

 private A_Arbeitszeitplan DetectShift(List<A_Arbeitszeitplan> shifts, PRAESENZZEIT von, PRAESENZZEIT bis, List<PRAESENZZEIT>arrivals)
    {


        var lastTime = arrivals.Where(x=>x.ZPZ_Bis.)
        foreach (var shift in shifts)
        {  
            if (von.ZPZ_Von <= shift.Arbeitsbeginn.AddMinutes(-20) &&
                bis.ZPZ_Bis >= shift.Arbetsende.AddMinutes(-10))
                return null;
            else if (von.ZPZ_Von >= shift.Arbeitsbeginn.AddMinutes(20) &&
                 bis.ZPZ_Bis >= shift.Arbetsende.AddMinutes(10))
                return null;

            else if (von.ZPZ_Von <= shift.Arbeitsbeginn.AddMinutes(5)
               && bis.ZPZ_Bis <= shift.Arbetsende.AddMinutes(10)
               )
                return shift;

        }
        foreach (var shift in shifts)
        {
            if (von.ZPZ_Von <= shift.Arbeitsbeginn.AddMinutes(5))
                return shift;
        }

        return null;
    }

1 个答案:

答案 0 :(得分:1)

如果您只想使用TimeSpan中的DateTime,则可以这样获得:

  

在DateTime中,您可以使用.TimeOfDay-但这会给您一个   TimeSpan代表一天中的时间(10小时)。

当然,您需要将TimeSpans相互比较:

if (von.ZPZ_Von.TimeOfDay <= shift.Arbeitsbeginn.AddMinutes(-20).TimeOfDay &&
            bis.ZPZ_Bis.TimeOfDay >= shift.Arbetsende.AddMinutes(-10).TimeOfDay)
            return null;