업무/Perl
[perl] 어제날짜 구하기
랄프위검
2012. 2. 2. 18:42
오늘의 날짜가 1일인데 어제날짜를 구해야하는 프로그램을 짜야할떄..
어제가 30일인지 31일인지.. 또는 2월이 윤달인지 아닌지 참 헷갈리고 수동으로짜야하면 노가다임..ㅠㅠ
그럴때~! 응용하면 되는 프로그램!! ㅎㅎ
use Time::Local;
sub get_yesterday($$$)
{
my ($y, $m, $d) = @_; #년도, 월, 일을 입력받는다.(날짜지정해서쓸때만 인자받음)
my ($sec, $min, $hour, $mday, $mon, $year) = (0,0,0,$d,$m-1,$y-1900); #날짜지정해서 쓸때
#my ($sec, $min, $hour, $mday, $mon, $year) = localtime(); #그냥 현재날짜만 쓸때
my $yesterday_midday=timelocal(0,0,0,$mday,$mon,$year) - 60*60*24;
($sec, $min, $hour, $mday, $mon, $year) = localtime($yesterday_midday);
my $YesterdaysDate = sprintf("%4d%02d%02d", $year+1900, $mon+1, $mday);
return $YesterdaysDate;
}
리턴값 : 20120201 (오늘날짜가 2월2일이라면..)