[펄스크립트] 날짜 가져오기

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