|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Mykola Dzham 2:5020/400 19 Aug 2005 01:15:27 To : Vladimir Marunin Subject : Re: вот хотел спросить у общественности -------------------------------------------------------------------------------- Vladimir Marunin wrote: > > "Max Kuznetsov" <Max.Kuznetsov@p101.f845.n5020.z2.fidonet.org> сообщил в > новостях > > > A> дату изменить текущую на определенное количество дней > > A> я вот так в лобсделал но сие не красиво > > A> и потом формат не совпадает для однозначных дат получается > > A> 2005-08-1 > > A> а надо бы 2005-08-01 > > > > A> $datestamp = strftime "%Y-%m-%d_%H:%M:%S", localtime; > > A> print $datestamp, "\n"; > > > > A> my $date_tek_y_m = strftime "%Y.%m.", localtime; > > A> my $date_tek_d = strftime "%d", localtime; > > A> my $d=1; > > A> $date_tek = $date_tek_y_m.($date_tek_d-$d); > > > > A> print $date_tek, "\n" ; > > > > Если тебе надо просто получеть строку с исомой датой, то просто localtime > > прибавляешь или отнимаешь колшичествао дней * 86400 и выводишь в нужном > > формате > > > > $time = localtime + (86400 * $d); > > $datestamp = strtftime "%Y-%m-%d_%H:%M:%S", $time; > > print $datestamp, "\n"; > > Hепарвда твоя. Далеко не во всех сутках 86400 секунд. Дважды в год это не > верно (переход с зимнего на летнее время и наоборот), поэтому если сейчас > время около полуночи (от 23:00 до 01:00) то такая схема может дать ошибку на > сутки. Поэтому надо все расчеты делать в unixtime: там таки во всех сутках 60*60*24 секунда. > Или возьми нормальный модуль для работы с данными (лучше), > либо проверяй время на полночь, например так: > > $time = time() + (86400 * $d) +(12 - (localtime())[2] )*3600; > datestamp = strtftime "%Y-%m-%d_%H:%M:%S", $time; > > Тут идея в том, чтобы брать середину суток (я вычитаю текущие часы и > прибавляю 12). По моему тут не идея а неясность задачи. В частности если заявляется что нужно получить дату "через столько то суток" то зачем вообще обращать внимание на время? -- LEFT-(UANIC|RIPE) JID: levsha@jabber.kiev.ua --- ifmail v.2.15dev5.3 * Origin: National Taras Shevchenko University of Kyiv (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1049003d99024.html, оценка из 5, голосов 10
|