Как вычесть даты? - PullRequest
       35

Как вычесть даты?

0 голосов
/ 17 января 2009

Допустим, этот парень зарегистрировался на моем сайте за 5 $ в течение 30 дней. Так как же сделать код, который автоматически через 30 дней удаляет его учетную запись?

Спасибо за ответы и извините за плохой английский С уважением, Том

Ответы [ 6 ]

10 голосов
/ 17 января 2009

Используйте функции обработки даты вашего предпочтительного языка программирования. Не пытайтесь реализовать это самостоятельно. Это сложнее, чем вы думаете.

3 голосов
/ 17 января 2009

Я бы предложил просто отметить дату истечения срока действия учетной записи в ее записи, а не какой-либо запланированный процесс удаления учетных записей с истекшим сроком действия.

Для примера .Net: при получении платежа в размере 5 долларов США установите дату окончания срока действия учетной записи на DateTime.Now.AddDays (30) и отклоните вход в учетную запись, где expirationDate

В Java вам нужно вылить дату в календарь, чтобы добавить дни, а затем вылить ее обратно в дату, когда вы закончите.

Однако, какие средства доступны для обработки дат, определяются вашей средой.

2 голосов
/ 17 января 2009

Если вы можете преобразовать дату регистрации и текущее время в метки времени UNIX. Затем вычтите время их регистрации из текущего времени и проверьте, превышает ли результат количество секунд за 30 дней. (60 секунд * 60 минут * 24 часа * 30 дней = 2592000 секунд.)

0 голосов
/ 17 января 2009

wxWidgets имеет хорошие функции обработки дат, а также многие другие.

0 голосов
/ 17 января 2009

Если вам просто нужно сосчитать 30 дней, вы можете считать их 30 * 24 * 60 * 60 = 2592000 секунд и просто вычесть метки времени Unix.

Что-нибудь более сложное, чем это PITA, чтобы реализовать себя, и вы должны следовать совету рекурсива.

0 голосов
/ 17 января 2009

Скорее всего, вы будете запускать задание cron каждый день или около того, проверять, был ли последний платеж учетной записи 30 дней назад, а затем удалять пользователя. Однако манипулирование датой сложно объяснить, если мы не знаем, какой язык вы используете. Поскольку вы указали DateTime, я буду предполагать, что вы имеете в виду объект .NET DateTime, а затем вы можете просто сделать DateTime.addMonths (-1); или DateTime.addDays (-30) соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...