什么是最好的方法来知道它是否是第一次开放的应用程序在一天
本文关键字:第一次 是否是 应用程序 一天 方法 什么 | 更新日期: 2023-09-27 18:17:35
我正在寻找一个示例代码如何知道如果它是第一次,应用程序在一天中打开?我尝试将当前日期保存在.ini文件中,并使用布尔值定义一个名为open的键,然后比较:
DateTime.Now.Substract(*old date from .ini file*).TotalMinutes >= 0
之后,将.ini文件中的open key设置为true。如何实现它?有更简单的方法吗?
我需要知道它,因为在第一次打开应用程序时,我会更新数据库中的列表。
任何帮助都是感激的。
应用程序设置中的每个用户将是我选择的位置。
"Best"是一个移动的目标。对于一个应用程序,一种方法可能是最好的,但另一个应用程序可能需要完全不同的方法。
也就是说,您需要涵盖几个概念:
- 一些地方记住"最后打开"的时间。
- 一些代码来检查时间,更新它,并做一天一次的工作。
- 数据库(在与用户id之类的东西绑定的表中)
- Ini文件(如您所提到的)
- xml文件(甚至可能在app.config中)
请参阅我对您的问题的评论,关于您是否在单个工作站/多用户等上跟踪-这将决定您存储日期时间的位置(在数据库中,在机器级范围内,在用户级范围内等)。
至于你要存储什么,如果你是一个多用户应用程序(甚至是移动设备,比如手机或笔记本电脑),不要忘记考虑时区。就此而言,不要忘记考虑日光节约时间。(这些时间的变化可能会让你认为一天已经过去了,而实际上并没有,反之亦然)。
我建议你总是用UTC存储时间,并且总是用UTC进行比较:
<>之前
// save the start time:
var startTime = DateTime.UtcNow;
(save the start time)
...
// comparing the times:
// also, are you worried about doing the check once per 24 hours, or do you want to go by calendar date?
// you already have code that does a once per 24hr check, so I will show code that goes by calendar days
if(startTime.Date < DateTime.UtcNow.Date)
// hasn't run today
else
// has run today