2017. 4. 2. 16:59ㆍ펄스크립트
목적 : 변수로 시작일과 종료일을 받아와 그 사이의 모든 날을 출력하기.
실행 예시 : ./date.pl 20160101 20160630
예시 결과 : 20160101 20160102 20160103 20160104 ........ 20160628 20160629 20160630
#!/usr/bin/perl use warnings; use strict; use Time::Local; if( $#ARGV < 1 ){ print "Check Argument\n"; exit; } my $start = $ARGV[0]; my $end = $ARGV[1]; my $date = ""; my $cnt = 0; while(1){ $date = &getDate($start, $cnt); print "$date\n"; if($date eq $end){ exit; } $cnt++; $date = ""; } sub getTime ( $$ ) { my $date = $_[0]; my $diff = $_[1]; my $year = substr($date,0,4); my $mon = substr($date,4,2); my $mday = substr($date,6,2); my $hours = 0; my $min = 0; my $sec = 0; return timelocal($sec, $min, $hours, $mday, $mon - 1, $year) + $_[1] * (24*60*60); } sub getDate ( $$ ) { my $date = $_[0]; my $diff = $_[1]; my $time = &getTime( $date, $diff ); (my $sec, my $min, my $hour, my $mday, my $mon, my $year, my $wday, my $yday, my $isdst) = localtime( $time ); return sprintf("%04d%02d%02d", $year + 1900, $mon + 1, $mday); } |
'펄스크립트' 카테고리의 다른 글
리눅스에서 다른 서버에 있는 MSSQL 연결하기 (0) | 2019.05.08 |
---|---|
[펄스크립트] foreach (0) | 2017.04.02 |
[펄스크립트] 루프(loop) (0) | 2016.04.18 |