Home » » Print date range di perl

Print date range di perl

(seputar-Programming.blogspot.com). Pernahkah anda membuat script perl yang mencollect file dari range date tertentu. Tentu akan membosankan jika anda memasukan seluruh tanggal di script secara manual.

berikut subroutine ( function ) untuk membuat date range di perl



Penggunaan script :
anda bisa memanggil script ini dengan cara :
@date_1 = printDateRange('2013-09-01','2013-09-10','1');
@date_2 = printDateRange('2013-09-01','2013-09-10','2');

maka jika print "@date_1"; akan keluar hasil sebagai berikut :
2013-09-01 2013-09-02 2013-09-03 2013-09-04 2013-09-05 2013-09-06 2013-09-07 2013-09-08 2013-09-09 2013-09-10

jika print "@date_2"; akan keluar hasil sebagai berikut :
20130901 20130902 20130903 20130904 20130905 20130906 20130907 20130908 20130909 20130910

berikut script subroutine printDateRange();
sub printDateRange
{
    use POSIX qw/strftime/;
    my ($start_date,$end_date,$print_mode);
    undef @arout;       
   
   if(@_){
        $start_date = $_[0];
        $end_date = $_[1];
        $print_mode = $_[2];
    }else{
        $start_date = "2010-08-16";
        $end_date   = "2010-09-16";
    }
    my @time  = (0, 0, 0);
    my ($y, $m, $d) = split "-", $start_date;
    $y -= 1900;
    $m--;
    my $offset = 0;
    while ((my $date = strftime "%Y-%m-%d", @time, $d + $offset, $m, $y) le $end_date){
        # print "$date\n";
        if($print_mode eq '1'){
            push(@arout,$date);
        }
        if($print_mode eq '2'){
            my $date2 = strftime "%Y%m%d", @time, $d + $offset, $m, $y;
            push(@arout,$date2);
        }       
    } continue {
        $offset++;
    }
    return @arout;
} 


0 comments:

Post a Comment

 
Support : Your Link | Your Link | Your Link
Copyright © 2013. Seputar Programming - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger