DateAndTime.DateDiff不起作用

时间:2016-06-20 16:25:08

标签: c# datetime

我正在将正确的参数传递给DateAndTime.DateDiff(Internval, Date1,Date2)但是我得到No Overload方法DateDiff需要3个参数。

private void CloseRegister()
{
     try
     {
     GetTransactionNumberFromRegMst();
     SeqNum = 1;
     TransDate = DateAndTime.DateDiff(DateInterval.Day, Convert.ToDateTime("12/28/1800"), DateTime.Now);
     TransTime = DateAndTime.DateDiff(DateInterval.Second, DateTime.Today, DateTime.Now) * 100;

     WriteCshTServClose();
     WriteTranServClose();

     UpdateRegMstWithTransactionNumber();
     UpdateNetRegsStatus(7);
     UpdateTillSeqSequence(TillSeqSequence + 1);

     }
     catch (Exception ex)
     {
     string close = "CloseRegister";
     logger.AddEntry(TFSUtilities.Logger.EventType.Info, "frmMain.CloseRegister", "Exception", ref ex);
     AbendProgram(ref close, ref ex);
     }
}

2 个答案:

答案 0 :(得分:0)

通过添加引用,确保在应用程序中引用Microsoft.VisualBasic(即使它是C#应用程序)。那么你的代码应该可以正常工作:

e.g。

long TransTime =
    Microsoft.VisualBasic.DateAndTime.DateDiff(
    Microsoft.VisualBasic.DateInterval.Second, DateTime.Today, DateTime.Now) * 100;

使用VS 2010和转发,您可以省略可选参数。

另外,请确保TransTimeTransDatelong

有用的reference

答案 1 :(得分:0)

您获得日期差异的更好选项如下。您可以直接从另一个日期中减去一个日期,然后使用.TotalDays();

string inputString = "12/28/1800";
DateTime TransDate;
if (DateTime.TryParseExact(inputString, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out TransDate))
{
    double differenceInDays = (DateTime.Now - TransDate).TotalDays;
    double differenceInHours = (DateTime.Now - TransDate).TotalHours;
}
else
{ 
   // Your input is not valid
}
  

注意: - DateTime.TryParseExact()会将指定的日期和时间字符串表示形式转换为其DateTime   当量。 字符串表示的格式必须与a匹配   指定格式正好。该方法返回一个指示的值   转换是否成功。

包括using System.Globalization;

CultureInfo