Каков наилучший способ узнать, если приложение открывается впервые за день? - PullRequest
0 голосов
/ 10 декабря 2011

Я ищу пример кода, как узнать, открылось ли приложение впервые за день? Я попытался сохранить текущую дату в INI-файле и ключе с именем open, определенном с логическим значением, а затем сравнить:

DateTime.Now.Substract(*old date from .ini file*).TotalMinutes >= 0 

и после этого установите открытый ключ в файле .ini как true. как это реализовать? Есть ли способ сделать это проще?

Мне нужно знать об этом, потому что в первый раз, когда приложение было открыто, я обновлю список в базе данных.

любая помощь приветствуется. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 10 декабря 2011

На пользователя в Настройки приложения будет местом, которое я выберу.

0 голосов
/ 10 декабря 2011

См. Мои комментарии в вашем вопросе относительно того, отслеживаете ли вы работу на одиночной рабочей станции / многопользовательском и т. Д. - это будет определять, где вы будете хранить дату (в базе данных, в области действия компьютера, на уровне пользователя).область действия и т. д.).

Теперь, что касается того, что вы храните, если вы многопользовательское приложение (или даже мобильное, как на телефоне или ноутбуке), не забудьте рассмотреть часовые пояса.В связи с этим, не забудьте рассмотреть летнее время.(эти изменения во времени могут заставить вас думать, что день прошел, а когда нет, или наоборот).

Я бы порекомендовал вам всегда хранить время в 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

0 голосов
/ 10 декабря 2011

«Лучший» - движущаяся цель.Для одного приложения один метод может быть лучшим, но другому приложению может потребоваться что-то совершенно другое.

При этом вам нужно охватить несколько понятий:

  1. Некоторое место, которое нужно запомнитьвремя «последнего открытия».
  2. Некоторый код для проверки времени, его обновления и выполнения раз в день работы.

Из вашего вопроса # 2 довольно просто, если вы знаете, что #1 должно быть.Итак, вот некоторые потенциальные опции для # 1.

  1. База данных (в таблице, привязанной к чему-то вроде идентификатора пользователя)
  2. Ini-файл (как вы упомянули)
  3. XML-файл (возможно, даже внутри app.config)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...