代码:
private void beginOperstionChecker(DateTime dt)
{
string time = Options_DB.Get_OperationLastTime();
DateTime.Now = time;
}
现在时间例如显示保存的datetime.now可能是分钟前或小时ao。 我的程序完成后,将保存datetime.now以进行操作。
dt =现在的日期时间我现在在构造函数中使用此方法。
我想要做的是计算上次保存的datetime.now(时间)和当前datetime.now(dt)之间的时间。
如果已经过的时间是20分钟或更长时间,则启用按钮。
答案 0 :(得分:5)
您无法设置DateTime.Now
您需要创建DateTime
对象的实例。
然后为了得到差异你可以说
TimeSpan diff = DateTime.Now - MyDateTime;
这有一个名为TotalMinutes
的属性,您可以将其用于支票。
if (diff.TotalMinutes >= 20)
{
//Do sommething
}
您可以尝试此代码
DateTime date;
if (DateTime.TryParse(time, out date))
{
TimeSpan diff = date - dt;
if (diff.TotalMinutes >= 20)
{
//Do sommething
}
}
答案 1 :(得分:2)
每次运行此方法时,都需要在某处保留值。我将调用该变量_lastTime
。这将是一个DateTime
。此外,您需要一个变量来表示这两者之间的实际经过时间,我们称之为_elapsedTime
。这将是一个TimeSpan
。考虑到这一点,请考虑以下代码:
private void beginOperstionChecker(DateTime dt)
{
string time = Options_DB.Get_OperationLastTime();
var dt = DateTime.Parse(time);
_elapsedTime = dt.Subtract(_elapsedTime);
_lastTime = dt;
}
答案 2 :(得分:1)
使用Parse
从字符串中获取DateTime的实例DateTime dt = DateTime.Parse(time)
然后你得到时间现在使用
DateTime.UtcNow; or DateTime.Now;
并从另一个中减去一个并根据您的输出格式化
答案 3 :(得分:1)
您可以使用TimeSpan类检查已用时间。
private void beginOperstionChecker(DateTime dt)
{
if(TimeSpan.FromMinutes(20) == DateTime.Now - dt)
{
//do your stuff here
}
}
答案 4 :(得分:1)
您可以使用TimeSpan
执行此操作。
您需要获取Difference
Minutes
DateTime dt1;//get your first date
TimeSpan duration = DateTime.Now - dt1;
if(duration.Minutes>20)
Button1.Enabled=true;
答案 5 :(得分:1)
我认为你在寻找这个:
private void beginOperstionChecker(DateTime dt)
{
string time = Options_DB.Get_OperationLastTime();
DateTime lastTime = DateTime.Parse(time);
if (DateTime.Now - lastTime > new TimeSpan(0, 20, 0))
{
//It's passed more than 20mins from last save.
}
}