C# 如何获取最后一次计数,或一天中的最后一次计数

C# 如何获取最后一次计数,或一天中的最后一次计数,c#,C#,我很难找到一天中的最后一个时间——这是下面最大的一张图片,我怎样才能得到那个时间? 我不得不把这次和他的班次比较一下,但是当我这样做的时候,我总是第一次阅读 这是我的代码: foreach (var shift in shifts) { if (von.ZPZ_Von <= shift.Arbeitsbeginn.AddMinutes(-20) && bis.ZPZ_Bis >= shift

我很难找到一天中的最后一个时间——这是下面最大的一张图片,我怎样才能得到那个时间? 我不得不把这次和他的班次比较一下,但是当我这样做的时候,我总是第一次阅读

这是我的代码:

 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

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

因此,我需要将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)

如果您只希望使用DateTime的时间跨度,您可以这样获得:

从DateTime开始,您可以使用.TimeOfDay,但这会给您一个 TimeSpan表示一天中的时间10小时

当然,您需要相互比较时间跨度:

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

我完全糊涂了。你能介绍一下你的问题,解释一下你到底想做什么吗?然后进入细节。我完全无法理解你为什么要这么做。还有一个建议:更好地使用英语,这样非德语国家的人也可以通过他们的名字来理解你的VAR的语义。对此我深表歉意,我需要找出哪一个是一天中的最后一个,然后我可以将它与适合它的转换进行比较。我同意。如果你能提供更多的信息,尤其是关于你的对象类型的信息,一般来说会很好。这将使您更容易理解您的问题。如果工作人员到达20分钟或工作时间超过10分钟,则返回null。我完全不理解这一部分背后的原因。基于以下条件:bis.ZPZ_bis>=shift.Arbetsende.AddMinutes-10,对于提前完成10分钟或更长时间的工人,您将返回null。此外,此方法的“Arbetsende”拼写错误。