준호씨의 블로그

perl - n일 전 날짜 구하기. Time::Piece 모듈 이용 본문

개발이야기

perl - n일 전 날짜 구하기. Time::Piece 모듈 이용

준호씨 2016. 11. 23. 22:06
반응형


n일 전 날짜 구하기 포스팅 (http://junho85.pe.kr/544) 을 했었는데 aero 님이 perl 5.8 부터 Time::Piece 가 core 모듈로 들어 갔다고 하여 Time::Piece 버전을 만들어 보기로 하였다.

사용하는 모듈이 좀 바꼈고 get_date_ago 함수 내용이 좀 바꼈다. 다른 부분은 동일하다.

get_date_ago(ago) 함수는 ago 일 전의 날짜를 yyyy-mm-dd 포멧의 문자열로 반환하는 함수이다.
#!/usr/bin/env perl

use strict;
use warnings;

use Time::Piece;
use Time::Seconds;

sub get_date_ago {
    my $ago = shift;

    my $time = Time::Piece->new;
    my $daysago = $time - ONE_DAY * $ago;

    #my $datestring = $daysago->strftime("%F"); # yyyy-mm-dd
    my $datestring = $daysago->ymd; # yyyy-mm-dd
    #my $datestring = $daysago->strftime("%Y%m%d"); # yyyymmdd

    return $datestring;
}

사용예는 다음과 같다.
for (my $i = 1; $i < 30; $i++) {
    my $date = get_date_ago($i);

    print $date."\n";
}

결과는 다음과 같이 나온다.
2016-11-22
2016-11-21
...
2016-11-02
2016-11-01
2016-10-31
2016-10-30
2016-10-29
...
2016-10-25

참고

Solve almost any datetime need with Time::Piece 2014.01.10

반응형
Comments