2015-04-22 171 views
-5

我必须从当前日期时间中扣除某些日期时间。 这是几个规则定义。如何从当前日期时间扣除时间/日期

如果当前时间在下午11:30到凌晨12:00之间,则扣除同一天的下午11点30分钟。 否则从前一天扣除11小时30分钟。

让我们举个例子吧。

如果当前时间是4月23日晚上11:45,从给出15分钟的结果的同一天扣除至11:30 Pm。

如果当前时间是4月23日08:30 AM,从前一天(22日)扣除至下午11:30,结果为540分钟。

我想扣除使用DateTime.Today.AddDays(-1)。

但无法在c#中编写确切的逻辑。 任何帮助。 在此先感谢。

+1

如果包括到目前为止你做了什么,有人也许能帮助你解决它。 –

+0

请包含一些代码示例或至少psuedocode – JunaidKirkire

+0

您可以使用TimeSpan。 +简单的逻辑。 – Jack

回答

-1

您应该使用您的变量而不是DateTime.Today。 像:var newDate = SOMEDate.AddDays(-1);

0

您将需要测试这一点,它可能需要稍微修改,但尝试这方面的工作...

TimeSpan eTs = new TimeSpan(23, 30, 00); 
    double inMins; 

    if (DateTime.Now.TimeOfDay < eTs) 
    { 
     DateTime dTarget = DateTime.Now.AddDays(-1).Date + eTs; 
     TimeSpan ts = DateTime.Now.Subtract(dTarget); 
     inMins = ts.TotalMinutes; 
    } 
    else 
    { 
     DateTime dTarget = DateTime.Now.Date + eTs; 
     TimeSpan ts = DateTime.Now.Subtract(dTarget); 
     inMins = ts.TotalMinutes; 
    }