计算日期和当前日期之间的差异

计算日期和当前日期之间的差异

问题描述:

我正在用C#创建一个与Microsoft Access数据库接口的程序。我目前的任务是捕获创建条目的日期/时间,并计算存储值与当前日期之间的差异,并将其显示在单元格中。我不确定的是,是否在C#中进行计算,然后将它们存储在数据库中或首先将信息存储在数据库中,然后使用SQL执行计算。计算日期和当前日期之间的差异

我还需要跟踪一个单元在特定状态代码下的分类时间。我需要跟踪状态码更改的日期/时间,并计算状态码更改日期和当前日期之间的天数差异。

例如...如果单位xyz的状态代码已在3/5更改且当前日期为3/8 ...我希望它显示它已经在3天的时间内处于停滞状态。

这样做的全部目的是确定生产过程中瓶颈的位置。

我使用的是Visual Studio 2015 Professional和Microsoft Access 2010.数据库存储为.mdb文件。

如果这有点令人困惑,我很抱歉。我很乐意编辑我的问题,添加其他详细信息和/或提供澄清以帮助回答此问题。

编辑代码

private void button1_Click(object sender, EventArgs e) 
    { 
     DateTime startDate = new DateTime(); 
     DateTime a = DateTime.Now; 
     startTimeTextBox.Text = a.ToString(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     DateTime b = DateTime.Now; 
    } 

这些代码只有两位,我都试过了。我也尝试在Access with Now() - StartDate中进行计算,但成功有限。

+3

显示你到目前为止尝试过的代码。 –

+2

*“在Access中使用Now()进行计算 - 有限成功的StartDate”*如果'StartDate'是访问日期/时间字段,似乎应该可以工作。你提到的限制是什么? – HansUp

+0

我说它的工作取得了有限的成功,因为虽然它显示了差异,它显示为一个小数,我无法弄清楚如何只显示天数。当我确定我会遇到这种方法的问题时,我决定提出这个问题。 –

任务可以以几种不同的方式按照以下实施例来完成:使用函数

在MS办公室/访问VBA

DateDiff (interval, date1, date2, [firstdayofweek], [firstweekofyear]) 

例如(天数差异):

DateDiff("d",[StartDate],Now())

或区分在秒:

DateDiff("s",[StartDate],Now())

,并且还计算差在使用MS访问SQL查询如下所示天(推荐):

SELECT StartDate, DateDiff("d",[StartDate],Now()) AS DiffDays FROM Table1; 

注意:有关你的计算样本,也可能是还编程在MS Access SQL为以下(不能因为可能出现的错误的建议,同时处理负值):

SELECT StartDate, Fix(Now()-[StartDate]) AS DiffDays2 FROM Table1; 

它可以在C#中也计算为每回答构件@JaredPrice给出,或使用类似的方法DateAndTime.DateDiff()可用在.NET/C#(重:https://msdn.microsoft.com/en-us/library/ms127413(v=vs.110).aspx),例如:

long _diffDays = DateDiff(DateInterval.Day, StartDate, DateTime.Now); 

希望这将帮助。

+0

这大大帮助!这是我收到的最好和最有帮助的答案之一。谢谢! –

+0

不客气。同样,感谢您对项目的赞赏和祝福!最好的祝福, –

var seconds = DateTime.Now.Subtract(yourDateTimeObject).TotalSeconds; 

使你在几秒钟的差异。希望有帮助。你也可以得到其他东西的总数,如TotalMilliseconds

另外,DateTime.Now将当前时间作为DateTime对象获取。您也可以通过执行类似var seconds = oneDateTimeObject.Subtract(anotherDateTimeObject).TotalSeconds;的对比来比较两个DateTime对象。