2012-06-04 4 views
1

사용자가 날짜를 기준으로 일부 데이터를 쿼리 할 수있는 응용 프로그램이 있습니다. 이 응용 프로그램은 다양한 서양 언어를 지원하며 사용자는 해당 형식으로 쿼리를 입력 할 수 있습니다.다른 로케일로 연도, 월 및 일 추출

다양한 형식

15.10.2012 
15/10/2012 
10/15/2012 
15-Oct-2012 
15-Okt-2012 

마지막 하나는 다른 언어이며 내가 지원 언어의 N 번호로 조회 테이블을 정의 할 필요가 있기 때문에 룩업 테이블이 잘 맞지 않는 포함 .

나는 MFC/C++ Library/Windows 플랫폼 자체가 다양한 유효한 형식으로 날짜 정보를 추출 할 수있는 솔루션이있을 수 있다고 생각합니다. 일부 라이브러리/API 종류가있는 경우 도움을주십시오.

+0

아마도 (아마도) ISO 8601과 같은 국제 표준에 따라 사용자가 날짜를 입력하게하는 아이디어 일 것입니다. 나는 "현지화 된"파싱이 잘못 설정된 로케일을 통해 문제를 일으킬 수 있다고 생각합니다./또는 모호한 형식 (예 # 2/# 3에서와 같이). 이것이 바로 ISO 8601이 최초로 발명 된 이유입니다 ... – DevSolar

+0

그냥 FWIW, 필자가 의미하는 바는 yyyy-mm-dd를 필수 형식으로 지정하는 것입니다. – DevSolar

+1

COleDateTime :: ParseDateTime()을보십시오. http://msdn.microsoft.com/en-us/library/37t16xc9(v=vs.80).aspx –

답변

3

대부분의 최신 GUI에서 사용자는 키 입력을 통해 날짜/시간을 입력 할 필요가 없습니다. 보통 사용자가 날짜 - 시간을 입력하는 데 도움이되는 일종의 캘린더 컨트롤이 있습니다. 사용자 입력을 제한하기 위해 일부 컨트롤 (예 : http://msdn.microsoft.com/en-us/library/hhdec0z1(v=vs.80).aspx)을 사용할 수 없습니까? 또한 strftime() 함수를 사용하여 현재 로캘의 날짜/시간을 사용자에게 항상 표시 할 수 있습니다.

+0

'strftime()'은 Microsoft가 아닌 Standard C입니다. – DevSolar

+0

@DevSolar : 나는 그것을 잘못 이해했다 .. 죄송합니다. – PermanentGuest

+0

UI가 꽤 오래되어서 실제로 작동하는 방식을 바꿀 수는 없습니다. 또한 캘린더 컨트롤은 거기에 넣을 수 없습니다 :) 그걸로 살아야합니다. D 답장을 보내 주셔서 감사합니다. 분명히 문제를 해결하는 데 도움이되는 라이브러리 (맞춤형 프로그램)가 있었지만 @Dmitry가 언급했듯이 COleDateTime은 문제를 해결하는 데 도움이됩니다. 감사. – sarat