2014-03-13 6 views
1

유효하거나 유효하지 않은지 여부를 확인하는 프로그램을 작성해야합니다. 날짜는 mm/dd/yyyy 형식이며 날짜가 유효한지 여부를 결정하기 위해 문자열을 월, 일, 년으로 분할하는 방법을 찾아야합니다. 난 달과 일년 중 하나를 별도로 입력 할 수 없기 때문에 문제가 발생합니다. 기본적으로 나는 여러 달 동안 문자열을 분리하는 방법을 알아야하므로 각 달의 일수로 작업하고 날짜를 확인하는 데 사용할 수 있습니다. 당신이 나에게 줄 수있는 어떤 도움이라도 정말 고맙겠습니다. 저는 이것에 붙어서 그것을 이해할 수 없습니다. 감사.자바에서 문자열 분할하기

+1

SimpleDateFormat 당신이 DateFormat의를 사용할 수 있습니다으로 시도 예를 들면 다음과 같습니다? http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

+1

DateFormat이 작동하지 않으면 java.util.regex 패키지를 살펴보십시오. –

답변

2

다른 권장 사항과 마찬가지로 DateFormat을 사용해야합니다. 그 옵션을 선택하지 않으면, 난 당신이 할 수있는 것 같아요 :

String myDate = "10/23/1991"; 
String[] split = myDate.split('/'); 
String month = split[0]; 
String day = split[1]; 
String year = split[2]; 
+0

'5/2'에서는 작동하지 않을 것이고, 충돌 할 것입니다. – PlasmaPower

+0

@PlasmaPower 그는 "mm/dd/yyyy"형식으로 만받을 것이라고 말했습니다. – AxiomaticNexus

+0

오, 나는 그가 'mm/dd/yyyy' 포맷인지보고 싶다고 생각했습니다. 오케이. +1 – PlasmaPower

1

그것은 자신의 날짜를 구문 분석하는 데 거의 결코 좋은 생각입니다. 날짜는 신비한 것 : 윤초, 윤년, 시간대 등은 매우 복잡한 일입니다.

날짜를 확인하려면 해당 작업 (또는 라이브러리)의 Java 기능을 사용하는 것이 좋습니다.

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Snippet { 

    public static void main(String[] args) throws ParseException { 

     // define your own date format 
     SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); 

     // for strict parsing of dates, turn of lenient mode 
     dateFormat.setLenient(false); 

     // try to parse the date 
     Date date = dateFormat.parse("13/31/1604"); 

     // if no exception occurs, your date is a valid date 
     System.out.println("date valid"); 
    } 
} 
0

Date date = null; 
    try { 
     String target = "07/30/1991"; 
     DateFormat df = new SimpleDateFormat("M/d/yyyy", Locale.ENGLISH); 
     date = df.parse(target); 
    } catch (ParseException ex) { 
     date = null; 
    } 
    if (date != null) { 
     // Or you use the deprecated methods .. just saying 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     int day = cal.get(Calendar.DAY_OF_MONTH); 
     int month = cal.get(Calendar.MONTH); 
     int year = cal.get(Calendar.YEAR); 
    } 
관련 문제