최고로 간단한 년도의 60갑자 명칭 구하는 함수입니다.
문득 60갑자 명칭 구하는게 너무 쉽다는 생각에 한번 뚝딱 만들어 본 것입니다.
ㅡㅡ;
년도는 무제한 됩니다.
혹 쓰실 분이 계실지도...
// 년도에 대한 60갑자명칭 돌려주기.
char *Kapja(int year)
{
char *Sky = "갑을병정무기경신임계";
char *Earth = "자축인묘진사오미신유술해";
int sky = (year + 6) % 10;
int earth = (year + 8) % 12;
static char buf[5];
strncpy(buf + 0, Sky + sky*2, 2);
strncpy(buf + 2, Earth + earth*2, 2);
buf[4] = 0;
return buf;
}
// 테스트
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int year = 1984; year < 2010; year++)
{
Memo1->Lines->Add(String().sprintf("%d년은 %s년", year, Kapja(year)));
}
}
|