# Vollständige Datumsprüfung



## melle (12. September 2004)

Hoffe Ihr könnt mir helfen. Habe ein kleines Progamm um eine Datumseingabe zu überprüfen. Funktioniert soweit ganz gut. 
1. Das Problem liegt nur bei der Angabe der Jahreszahl. Es geht sowohl 13.12.1995 als auch 13.12.19, was ich ja nicht will. Wie kann ich erreichen, das er wirklich nur Datumseingaben akzeptiert wo ein komplettes Datum steht?
2. Wie kann ich die Tagesanzahl zwischen 2 Datumsangaben berechnen?

Code:
import java.util.*; 
import java.text.*; 
import java.io.*; 

public class MartinDatum 
{ 
public static void main(String args[]) 
{ 
Date dtm = null; 
MartinDatum input = new MartinDatum(); 
String eingabe = input.datuminput(""); 
try 
{ 
    dtm = input.pruefeeingabe(eingabe); 
    System.out.println("Eingabe von"+" "+eingabe+" "+"ist ok"); 
} 
catch(ParseException e) 
{ 
     System.out.println("Falsches Datum oder falsche Eingabe"); 
} 
} 
public Date pruefeeingabe(String eingabe) throws ParseException 
{ 
SimpleDateFormat datform = new SimpleDateFormat("dd.MM.yyyy");
datform.setLenient(false); 
Date dtm = datform.parse(eingabe); 
return dtm; 
} 

public String datuminput(String ein) 
{ 
try 
{ 
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
while(ein != null) 
{ 
    ein = in.readLine(); 
    break; 
} 
} 
catch(IOException e)  
{ 
System.out.println(e); 
} 
return ein; 
} 
}

Danke.


----------



## Thomas Darimont (12. September 2004)

Hallo!

Zu deinem ersten Problem:

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

public class DateDemo {

	public static void main(String[] args) {
		//Datums Überprüfung
		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
		
		String date = "29.08.1983";
		String date1 ="-11111";
		String date2 ="1.1";

		try {
			Date d = sdf.parse(date);
			System.out.println("Date " + d + " is valid!");
		} catch (ParseException e) {
			System.err.println("Date is invalid!");
			e.printStackTrace();
		}

		try {
			Date d = sdf.parse(date1);
			System.out.println("Date " + d + " is valid!");
		} catch (ParseException e) {
			System.err.println("Date is invalid!");
			e.printStackTrace();
		}

		try {
			Date d = sdf.parse(date2);
			System.out.println("Date " + d + " is valid!");
		} catch (ParseException e) {
			System.err.println("Date is invalid!");
			e.printStackTrace();
		}
	}
}
```

Zu deinem zweiten schaust du  mal hier:
http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-time_p.html

HTH 
Gruß Tom


----------



## melle (12. September 2004)

Danke


----------

