C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[15110] Re:Re:Re:[질문] 시스템 시간을 영문 표기법으로 표시는?(프로그램에서하는 방법)
패패루 [] 1624 읽음    2002-01-29 16:15
^^ 네.. 말씀하신 것 처럼 글로벌 변수를 직접 건드리는 방법이 있긴 하지만 다른 곳에도 영향을 주기 때문에 저 같은 경우는 아주 특별한 경우를 제외하고는 이런 방법을 잘 안씁니다.

제 생각에는 특별히 표준 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로 고쳐야 하는데.. 어떻게 고쳐야 하죠?
: : :
: : : 부탁드려요..
: : :

+ -

관련 글 리스트
15083 [질문] 시스템 시간을 영문 표기법으로 표시는? 이학균 1411 2002/01/29
15098     Re:[질문] 시스템 시간을 영문 표기법으로 표시는? 김상구.패패루 1074 2002/01/29
15108         Re:Re:[질문] 시스템 시간을 영문 표기법으로 표시는?(프로그램에서하는 방법) hongfox 1110 2002/01/29
15110             Re:Re:Re:[질문] 시스템 시간을 영문 표기법으로 표시는?(프로그램에서하는 방법) 패패루 1624 2002/01/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.