我正在将正确的参数传递给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);
}
}
答案 0 :(得分:0)
通过添加引用,确保在应用程序中引用Microsoft.VisualBasic
(即使它是C#应用程序)。那么你的代码应该可以正常工作:
e.g。
long TransTime =
Microsoft.VisualBasic.DateAndTime.DateDiff(
Microsoft.VisualBasic.DateInterval.Second, DateTime.Today, DateTime.Now) * 100;
使用VS 2010和转发,您可以省略可选参数。
另外,请确保TransTime
和TransDate
为long
。
有用的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