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

 
Previous Post [QnA] C#(C샤프) 소스의 기본 확장자는? C샤프 컴파일러의 파일명은?[고전 게임 QnA] DOOM / DOOM2 의 무적키는? - God modepcre.dll / libiconv2.dll 등의 파일 다운로드 하는 곳? / 파일이 없다...[QnA] .xls (XLS) 라는, 확장자의 파일은 무엇입니까?[추억의 스샷] HWP v1.5 (아래아한글 1.5) - 1991년의 워드프로세싱 환경[고전 게임] 도스박스에서 DOOM2 (둠2) 실행하기[도스박스 QnA] 파일을 찾지 못해요 - DOSBox.NET Framework 설치하면, C#(C샤프), 비주얼 베이직 컴파일러 등도 설치됨[건강] 여름 감기, 예방 / 치료 : 충분한 수분 섭취를 - Summer Cold[한국 우표 수집] 동화 시리즈 [선녀와 나무꾼] - Stamp Korea 1970

[Perl] 펄로, 현재 날짜(연월일)와 시분초 쉽게 다루는 서브루틴: GetTimeStr

Saturday, July 22, 2006

펄이든 무슨 언어이든 날짜와 시간을 처리하는 부분이 번거롭습니다.

제가 어제 날짜에 관계된 펄 프로그래밍을 하려고 했는데, localtime 을 해석하는 부분이 좀 복잡하더군요.

그래서 아예, "Y" 를 넣으면 현재 연도가 나오고, "h" 를 넣으면 현재 시간이 나오는 아주 단순명쾌한 함수를 하나 만들었습니다.

GetTimeStr 이라는 함수입니다.

봉숭아학당에서도 사용할 수 있을 만큼 사용법이 간단합니다.



펄 코드:
#!/usr/bin/perl
use strict; use warnings;


print "Year  : ", &GetTimeStr("Y"), "\n";
print "Month : ", &GetTimeStr("M"), "\n";
print "Day   : ", &GetTimeStr("D"), "\n";

print "\n";

print "Hour  : ", &GetTimeStr("h"), "\n";
print "Min   : ", &GetTimeStr("m"), "\n";
print "Sec   : ", &GetTimeStr("s"), "\n";




sub GetTimeStr {
  return sprintf("%02d", (localtime) [0]       ) if $_[0] eq "s";
  return sprintf("%02d", (localtime) [1]       ) if $_[0] eq "m";
  return sprintf("%02d", (localtime) [2]       ) if $_[0] eq "h";

  return sprintf("%02d", (localtime) [3]       ) if $_[0] eq "D";
  return sprintf("%02d", (localtime) [4] + 1   ) if $_[0] eq "M";
  return sprintf("%04d", (localtime) [5] + 1900) if $_[0] eq "Y";

  undef;
}



GetTimeStr("Y") 는 현재 연도를 4자리 숫자로 반환
GetTimeStr("M") 은 현재 달을 2자리 숫자로 반환
GetTimeStr("D") 는 현재 일을 2자리 숫자로 반환

GetTimeStr("h") 는 현재 시간을 2자리 숫자로 반환
GetTimeStr("m") 은 현재 분을 2자리 숫자로 반환
GetTimeStr("s") 는 현재 초를 2자리 숫자로 반환

주의: 대소문자를 구분합니다. 대문자 M 은 '달'이고, 소문자 m 은 '분'입니다.

undef; 라는 부분은, 옵션을 잘못 주었을 때 undef 라는 값을 반환하라는 의미입니다. undef 는 논리적으로는 거짓이고, 숫자도 문자열도 아닌 특수한 값입니다. 변수를 만든 후 아무것도 대입하지 않았다면 undef 라는 값을 가지게 됩니다. 다만 숫자를 계산하는 곳에서는 0처럼 행동하고, 문자열을 다루는 곳에서는 빈 문자열 즉 ""처럼 행동합니다.

여기서는, 에러가 났다는 의미로 undef 를 반환했습니다. 별로 중요한 부분은 아니고, 없어도 되는 코드입니다.


실행 결과:
D:\Z>0.pl
Year  : 2006
Month : 07
Day   : 21

Hour  : 19
Min   : 49
Sec   : 20

D:\Z>



▶▶ Perl/펄] 어제 날짜 구하기, 전날 날짜 알아내기; Yesterday Date

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

펄 강좌와 각종 예제

3 Comments:
At 2:45 PM, Blogger mwultong said...

저도 그런 적이 자주 있었는데 이상하게도 오늘은 괜찮습니다.

지메일 쪽이 아닌 블로거의 문제인 것 같기도 합니다. 블로거 서버가 일시적으로 다운이 된 것이 아닐까 하고 추측합니다.

늦게 오는 경우도 있지만 아예 안오는 경우도 있어서 곤혹스럽더군요..

그리고 mwultong 의 발음은 물통 맞습니다. ^^

(∩_∩)

 
At 5:30 PM, Blogger mwultong said...

코멘트 블로그가 몇 시간이 지나도 업데이트가 되지 않는 걸 보니 역시 오늘 문제가 있습니다..

(+_+;

 
At 3:36 PM, Anonymous Anonymous said...

랄라라님의 코멘트:

* 물통님. 요즘 이메일 포스팅 기능이 좀 이상하지 않습니까? 제가 이걸 이용해서 코멘트 로그를 쓰고 있는데, 요즘 최신 코멘트를 잘 알려주지 못하고 있더군요.

Gmail의 전달 기능에 문제가 생긴건지, 혹은 이메일 포스팅 기능에 문제가 생긴건지 모르겠지만 좀 답답합니다. mwultong님의 코멘트 로그는 별 문제 없는지요?

예전에는 메일로 오는 코멘트들은 거의 다 자동으로 코멘트 로그에 포스팅되어서 불편함을 느끼지 못했는데, 요즘은 답답합니다.

근데 mwultong을 물통이라고 읽는게 맞는지 모르겠군요. 잘못 읽었다면 죄송합니다;;



(새 블로거 버전에서는, 랄라라님의 한글 아이디 글자가 깨져서, 다시 올립니다.)

 

Post a Comment

<< Home RSS 2.0 feed

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