2013-07-22 1 views
0

몇 명의 도움 사람이 필요합니다. 나는 현재 MM-DD-YYYY 형식의 날짜를 묻는 일괄 프로그램을 수행하고 있습니다 (대시 "-"는 사용자 입력에 포함되어 있음). 그 날짜는 폴더의 모든 텍스트 파일의 파일 이름에 추가됩니다. 그 부분은 나를 위해 쉬웠다. 내가 어떻게 해야할지 모르겠는데 사용자가 유효한 날짜 (문자 없음)를 입력하고 8 자로 제한된 날짜 (날짜에는 8 개의 숫자 만 있기 때문에)를 허용하는 프로그램에서 유효성 검사를하는 것입니다.입력 한 날짜 형식이 올바른지 확인하는 일괄 프로그램을 작성하는 방법

이 배치 프로그램에서 가능하면 나도 몰라,하지만 내가하고 싶은 또 다른 한가지는 프로그램이 날짜를 입력하라는 메시지를 표시 할 때, 메시지가 다음과 같이 표시 될 것입니다 :

`Enter Report Date: MM/DD/YYYY` 

여기서 MMDDYYYY는 이미 편집 가능한 입력 필드입니다. 슬래시 "/"는 기본적으로 표시되지만 편집 할 수는 없습니다. 월, 일 및 년 사용자 입력에 대한 구분 기호로만 사용됩니다. 이렇게하면 사용자 입력 (현재 프로그램에서)에 대시 (-)를 포함 할 필요가 없습니다.

사용자가 날짜를 입력하고 형식이 올바른지 확인한 후 입력 한 날짜는 폴더에 저장된 모든 텍스트 파일 (접미사)의 파일 이름에 추가됩니다. 그러나 파일 이름에 추가 할 날짜의 형식은 MM-DD-YYYY입니다. 즉, "/"는 포함되지 않으며 (파일 이름에는 허용되지 않으므로) "-"로 대치됩니다. 도움을 줄 수있는 사람 덕분에! 당신의 날짜가 유효한 경우 date 기능

답변

2

점검 :

@ECHO OFF &SETLOCAL 
SET "sdate=%date%" 

SET "ndate=07/22/2013" 
SET "ndate=%ndate:/=-%" 
ECHO %ndate%|DATE >NUL 2>&1 && ECHO "%ndate%" is a valid DATE || ECHO "%ndate%" is NOT a valid DATE 
SET "ndate=17-22-2013" 
SET "ndate=%ndate:/=-%" 
ECHO %ndate%|DATE >NUL 2>&1 && ECHO "%ndate%" is a valid DATE || ECHO "%ndate%" is NOT a valid DATE 
SET "date=%sdate%" 
PAUSE 

..output은 다음과 같습니다

"07-22-2013" is a valid DATE 
"17-22-2013" is NOT a valid DATE 
+0

감사합니다. 이 프로그램은 훌륭하지만 사용자에게 날짜를 입력하고 추가 검증을 요구하지는 않습니다. 예를 들어 사용자가 02/29/2013을 입력하면 프로그램에서 2013 년이 윤년이 아니기 때문에 유효하지 않은 날짜라는 메시지를 표시해야합니다. 또한 사용자가 알파 문자를 입력 할 경우 프로그램에서 허용하지 않고 숫자 값만 허용해야합니다. –

+0

이것은 불행히도 Java 코너가 아닙니다 :( – Endoro

관련 문제