2013년 12월 17일 화요일

[Python] 날짜를 다루도록 만든 클래스

KCal
python으로 날짜를 다루도록 만든 클래스입니다.
사용법
import kcal

a = kcal.KCal()
# instance를 생성합니다. 인자로 tuple이나 list형식의 날짜와 음력플랙, 윤달플랙을
# 줄수 있습니다.
# 위는 양력의 오늘 날짜로 새로운 인스턴스를 만듭니다.
# a = KCal((2001, 1, 10), 1) 음력 2001년 1월 10일

print a

print a.lunar()
# solar() / lunar() 함수
# 양력 / 음력 날짜로 내부 자료를 반환합니다.
# a.solar() ... (2001, 1, 10)
# a.lunar() ... ((2001, 1, 10), 0) 음력 2001년 1월 10일, 평달

a.to_lunar()
# to_solar() / to_lunar() 함수
# 내부 날짜를 양력 / 음력으로 바꿉니다.

a["date"] = '2001-1-10'
# 새로운 날짜를 대입합니다. 지정가능한 값은 '년-월-일' 형식의 문자열로 양력값이
# 지정됩니다.
# tuple이나 list를 줄수도 있습니다.
# a["date"] = b.lunar()

print a + 7
# 덧셈
# 정수값만 인자로 받을 수 있으며 새로운 인스턴스를 반환합니다.

print a - 7
b = a - 14
print a - b
# 뺄셈
# 정수는 덧셈과 같은 연산을 합니다.
# 문자열이나 같은 클래스의 인스턴스는 날짜 차이를 반환합니다.

import time
print a == time.time()
# 비교
# 정수나 실수값은 epoch로 부터의 시간으로 계산해서,
# 문자열이나 같은 클래스의 인스턴스는 날짜를 비교합니다.
# a <= b
# a >= '2001-1-11'

설치
압축을 풀고 ./configure; make; make install을 실행시키면 됩니다.

소스
kocal.c, kocal.h
C 소스입니다. 어디선가 받은 소스를 제가 손질하고 함수를 추가했습니다.

pykocalmodule.c
kocal에 대한 python wrapper입니다.
kcal.py
KCal 클래스입니다.

댓글 없음:

댓글 쓰기