|
^^ 네.. 말씀하신 것 처럼 글로벌 변수를 직접 건드리는 방법이 있긴 하지만 다른 곳에도 영향을 주기 때문에 저 같은 경우는 아주 특별한 경우를 제외하고는 이런 방법을 잘 안씁니다.
제 생각에는 특별히 표준 C의 루틴을 쓰지 않고 처리할거라면 그냥 static으로
static char pMonthNames[] = "JanFeb.....Dec";
이런 식으로 주고, DecodeDate를 써서 Month를 구한 다음 String(pMonthNames+nMonth*3,3) 이런 식으로 잘라서 쓰는 편이 나아 보이는군요..
DOW의 경우도 마찬가지입니다. "SunMonTue...Sat"; 이런 식으로 구성하면 되겠죠.
제 경우에는.. FormatString 함수를 보다 확장시켜서 영문버전의 Month, DOW를 지원하고 음력, 간지등을 지원하게 만든 함수를 별도로 만들어서 쓰고 있습니다.
패패루였슴다.
hongfox 님이 쓰신 글 :
: 안녕하세요 hongfox입니다.
:
: 프로그램에서 하는 방법은 도움말에 있습니다.
:
: 도움말에보면 이런 내용이 있습니다.
:
: [Currency and date/time formatting variables]에서
:
: extern PACKAGE AnsiString ShortMonthNames[12];
: extern PACKAGE AnsiString LongMonthNames[12];
: 로 Global변수로 기본적으로 System에 있는 설정 내용이 들어가게 되어 있습니다.
: 그런데 이 내용을 특정한 값으로 변경하고자 한다면 이곳에 원하는 내용으로
: 변경하면 됩니다.
:
: 즉, System에서는 Date : 2002 01월29일 10:10:10로 되에 있다고 가정하면
:
: ShortMonthNames[0]는 "01월"이 들어가게 됩니다.
:
: 그러므로 아래와 같이 작업하신 후 사용해보세요.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: AnsiString astr;
: astr.SetLength(30);
: ShortMonthNames[0]="Jan";
: ShortMonthNames[1]="Feb";
: ShortMonthNames[2]="Mar";
: ShortMonthNames[3]="Apr";
: ShortMonthNames[4]="May";
: ShortMonthNames[5]="Jun";
: ShortMonthNames[6]="Jul";
: ShortMonthNames[7]="Aug";
: ShortMonthNames[8]="Sep";
: ShortMonthNames[9]="Oct";
: ShortMonthNames[10]="Nov";
: ShortMonthNames[11]="Dec";
:
: astr = FormatDateTime("dd mmm yyyy hh:mm:nn", Now());
:
: }
:
: 참고:질문내용에서 Date Format에서 월을 Oct로 Display를 원하므로
: FormatDateTime에서 월을 mmm으로 해야 합니다.
:
: 만일 October로 하고자 한다면 LongMonthNames[12]에 다시
: 위와 같이 월을 변경해야 합니다.
:
: LongMonthNames[0] = "January";
: .................
: LongMonthNames[11] = "December";
:
: astr = FormatDateTime("dd mmmm yyyy hh:mm:nn", Now());
: FormatDateTime에서 월을 mmmm으로 해야 합니다.
:
: 즐프하세요......
:
:
:
:
:
: 김상구.패패루 님이 쓰신 글 :
: : 빌더의 TDateTime에서는 직접적으로 제어하는 방법이 없습니다.
: : 왜냐하면, OS의 Locale설정의 영향을 받기 때문이죠.
: : 좀 귀찮기는 하지만 time.h를 인클루드 해서 스텐다드 C로 처리할 수 있습니다.
: : 도움말을 조금 참조해 보시면 금방 해결 될겁니다.
: :
: : 이학균 님이 쓰신 글 :
: : :
: : : 안녕하세요..
: : :
: : : SMTP를 써서 간단한 메일 보내기 프로그램을 만들고 있는데
: : :
: : : 시간 부분에서 막히네요...
: : :
: : : Date: 23 Oct 81 11:22:33
: : : 이런 식으로 결과가 나와야 되는데
: : :
: : : FormatDateTime("dd mmmm yy hh:mm:nn", Now())
: : : 이렇게 하면은
: : : 23 10월 81 11:22:33
: : : 이런 식으로 나오네요..
: : :
: : : 10월을 Oct로 고쳐야 하는데.. 어떻게 고쳐야 하죠?
: : :
: : : 부탁드려요..
: : :
|