mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monday, January 15, 2007

Perl/펄] 2자리수 년도 구하기, 두 자리 연도 출력; Two Digits Year


예를 들어 1985년을 85 로 표현하고, 2007년을 07로 2자리로 나타내는 방법입니다. "나머지 연산자"인 %(퍼센트 기호)를 사용하는 것입니다. 펄의 도움말에 있는 내용인데

perldoc -f localtime

이런 명령어로 아래와 같은 도움말이 나옵니다. 물론 컴퓨터에 펄(Perl)이 설치된 상태여야 하고, 윈도우의 경우 명령프롬프트(일명 도스창)에서 위의 명령을 실행하면 됩니다.

※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
D:\Z>perldoc -f localtime
    localtime EXPR
    localtime
            Converts a time as returned by the time function to a 9-element
            list with the time analyzed for the local time zone. Typically
            used as follows:

                #  0    1    2     3     4    5     6     7     8
                ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
                                                            localtime(time);

            All list elements are numeric, and come straight out of the C
            `struct tm'. $sec, $min, and $hour are the seconds, minutes, and
            hours of the specified time.

            $mday is the day of the month, and $mon is the month itself, in
            the range 0..11 with 0 indicating January and 11 indicating
            December. This makes it easy to get a month name from a list:

                my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
;
                print "$abbr[$mon] $mday";
                # $mon=9, $mday=18 gives "Oct 18"

            $year is the number of years since 1900, not just the last two
            digits of the year. That is, $year is 123 in year 2023. The
            proper way to get a 4-digit year is simply:

                $year += 1900;

            Otherwise you create non-Y2K-compliant programs--and you
            wouldn't want to do that, would you?

            To get the last two digits of the year (e.g., '01' in 2001) do:

                $year = sprintf("%02d", $year % 100);

            $wday is the day of the week, with 0 indicating Sunday and 3
            indicating Wednesday. $yday is the day of the year, in the range
            0..364 (or 0..365 in leap years.)

            $isdst is true if the specified time occurs during Daylight
            Saving Time, false otherwise.

            If EXPR is omitted, "localtime()" uses the current time (as
            returned by time(3)).

            In scalar context, "localtime()" returns the ctime(3) value:

                $now_string = localtime;  # e.g., "Thu Oct 13 04:54:34 1994"

            This scalar value is not locale dependent but is a Perl builtin.
            For GMT instead of local time use the "gmtime" builtin. See also
            the "Time::Local" module (to convert the second, minutes, hours,
            ... back to the integer value returned by time()), and the POSIX
            module's strftime(3) and mktime(3) functions.

            To get somewhat similar but locale dependent date strings, set
            up your locale environment variables appropriately (please see
            perllocale) and try for example:

                use POSIX qw(strftime);
                $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;
                # or for GMT formatted appropriately for your locale:
                $now_string = strftime "%a %b %e %H:%M:%S %Y", gmtime;

            Note that the %a and %b, the short forms of the day of the week
            and the month of the year, may not necessarily be three
            characters wide.

            See "localtime" in perlport for portability concerns.

            The Time::gmtime and Time::localtime modules provides a
            convenient, by-name access mechanism to the gmtime() and
            localtime() functions, respectively.

            For a comprehensive date and time representation look at the
            DateTime module on CPAN.


D:\Z>


다음 예제는 현재의 년을 4자리와 2자리로 출력합니다.

2자리 년도 구하기 예제


파일명: 0.pl
#!/usr/bin/perl
use strict; use warnings;

  my $year = (localtime)[5];

  printf("%04d\n", $year + 1900);

  printf("%02d\n", $year % 100);




출력 결과 화면:
(1번째는 컴퓨터 날짜를 1985년으로 거꾸로 돌린 후 출력한 것이고, 2번째는 현재 날짜에 맞추어 놓고 실행한 결과입니다.)
D:\Z>0.pl
1985
85

D:\Z>0.pl
2007
07

D:\Z>



▶▶ Perl/펄] 오늘 날짜/현재 시간 구하기 함수, 년월일/시분초; Get Print Date Time Current




tag: perl
Perl | 펄

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top