- вчерашняя дата., pavel_simple, 16:05 , 12-Апр-07 (1)
>Здравтвуйте, о Гуру! =) > >столкнулся с проблемой...думаю вы сожете помочь.. > >задача - вывести в ISO вчерашнюю дату (т.е. 20070411) >можно решить путём $day-1 , но как быть с началом нового месяца? >получим (20070500) > >что посоветуете? > >спасибо.
- вчерашняя дата., pavel_simple, 16:07 , 12-Апр-07 (3)
- вчерашняя дата., vrh, 11:33 , 27-Апр-07 (15)
>>Здравтвуйте, о Гуру! =) >> >>столкнулся с проблемой...думаю вы сожете помочь.. >> >>задача - вывести в ISO вчерашнюю дату (т.е. 20070411) >>можно решить путём $day-1 , но как быть с началом нового месяца? >>получим (20070500) >> >>что посоветуете? >> >>спасибо. Кажный день в 23:59:50 ===> file НАКАНУНЕ = поместить в ./DIR/day_before/ #!/bin/sh date +%H > hour date +%M > min date +%S > sec date +%A > weekf date +%a > weeks date +%j > yearday date +%m > month date +%d > daymonth date +%w > dayweek date +%Y > year date +%y > year_00 date +%b > monthl <=== Кажный день в 00:00:10 ===> file СЕГОДНЯ = поместить в ./DIR/day_this/ !/bin/sh
date +%H > hour date +%M > min date +%S > sec date +%A > weekf date +%a > weeks date +%j > yearday date +%m > month date +%d > daymonth date +%w > dayweek date +%Y > year date +%y > year_00 date +%b > monthl <=== ... имея эти 2 файла (сег&накан) лепить можно всяко do like this, but better...
- вчерашняя дата., pavel_simple, 16:06 , 12-Апр-07 (2)
date -d 'now -1 month' у меня работает /Debian Sarge
- вчерашняя дата., NuINu, 16:22 , 12-Апр-07 (4)
>date -d 'now -1 month' >у меня работает /Debian Sarge ну тогда уж date -d 'now -1 day' ведь вроде дату то вчерашнюю надо а не месячной давности :)А так можно поставить модуль: Time-modules и реализовать простенький алгоритм. вычтя сначала день, определив предыдущий месяц, еслимесяц 0 то еще и год вычесть. а зная год, и месяц можно определить последний день месяца фунцкцией из DaysInMonth.pm days_in ну а потом все это объединить. А вообще вчерашнюю дату надо узнавать вчера!!!:)
- вчерашняя дата., pavel_simple, 16:27 , 12-Апр-07 (5)
>можно решить путём $day-1 , но как быть с началом нового месяца? получим (20070500) вот для этого я и написал date -d 'now -1 month' ---- ^^^^^^^^^^^^ -- человек и про месяц спросил. ну так вот --- получил прошлый месяц -- отформатировал (date -d 'now -1 month' +%Y%m), ну и добавил к строчке "01" итого: echo $(date -d 'now -1 month' +%Y%m)01
- вчерашняя дата., pavel_simple, 16:28 , 12-Апр-07 (6)
это про бревно и глаз....
- вчерашняя дата., bman, 17:45 , 12-Апр-07 (7)
>date -d 'now -1 month' >у меня работает /Debian Sarge =) проблема немного глубже... - запускаться всё это будет под win. (ActivePerl), так, что хотелось бы решить проблему как раз на Perle
- вчерашняя дата., madskull, 17:56 , 12-Апр-07 (8)
>>date -d 'now -1 month' >>у меня работает /Debian Sarge > >=) >проблема немного глубже... - запускаться всё это будет под win. (ActivePerl), так, >что хотелось бы решить проблему как раз на Perle Так почему бы не сделать time()-24*60*60 ?
- вчерашняя дата., bman, 11:29 , 13-Апр-07 (9)
>>>date -d 'now -1 month' >>>у меня работает /Debian Sarge >> >>=) >>проблема немного глубже... - запускаться всё это будет под win. (ActivePerl), так, >>что хотелось бы решить проблему как раз на Perle > > >Так почему бы не сделать time()-24*60*60 ? большое спасибо за идею.
сделал так: use Time::Format qw(%time %strftime %manip); $yesterday = $time{'yyyymmdd', time-24*60*60}; print $yesterday;
- вчерашняя дата., alexvs, 16:38 , 18-Апр-07 (10)
Можно ещё:my $ydate = localtime(); sleep(60*60*24); print $ydate;
- вчерашняя дата., idle, 17:55 , 18-Апр-07 (11)
>Можно ещё: > >my $ydate = localtime(); >sleep(60*60*24); >print $ydate; Гениально.
- вчерашняя дата., bingo2, 21:20 , 18-Апр-07 (12)
>Можно ещё: > >my $ydate = localtime(); >sleep(60*60*24); >print $ydate; =)
- вчерашняя дата., pavel_simple, 06:32 , 19-Апр-07 (13)
>Можно ещё: > >my $ydate = localtime(); >sleep(60*60*24); >print $ydate; Ж%-) -- сразу чувствуется разносторонность мышления.
- вчерашняя дата., FarID, 15:13 , 20-Апр-07 (14)
>Здравтвуйте, о Гуру! =) > >столкнулся с проблемой...думаю вы сожете помочь.. > >задача - вывести в ISO вчерашнюю дату (т.е. 20070411) >можно решить путём $day-1 , но как быть с началом нового месяца? >получим (20070500) > >что посоветуете? > >спасибо. my ($mday, $mon, $year) = (localtime(time - 24 * 60 * 60))[3, 4, 5]; my $yesterday = sprintf '%04d%02d%02d', $year + 1900, $mon + 1, $mday;
|