Hvordan Valider en dato i Java

Hvordan Valider en dato i Java


Når du mottar innspill i Java, vil du ønsker å validere den før den sendes til andre deler av programmet for å unngå feil. Validere brukerens input før du godtar den inn i programmet kan du sprette feil innspill tilbake til brukeren. Mens rekke valg i datouttrykk kan gjøre dato innspill og validering plagsom, en enkel metode kan du sjekke dine innspill og sikre korrekt formaterte datoer.

Bruksanvisning

1 Bestem på datoformatet du vil kreve brukere til å bruke for programmet innspill. For eksempel kan du velge måned / dato / år.

2 Lag en boolsk metode som aksepterer inngangs dato i form av en streng:

privat isValidDate (String input) {}

3 Konverter ideell dato format til en streng som Java kan forstå. Innbytter kapital "M" for hvert tegn i måneden, liten "d" for hvert tegn i dag i måneden, og liten "y" for hvert tegn i år. For eksempel hvis du forventer brukerne å legge inn den 31 desember 1999, som 12/31/1999, vil daten din formatstrengen være MM / dd / åååå. Lagre denne strengen som format i isValidDate metoden.

String format = "MM / dd / åååå";

4 Importer de nødvendige klassene inn i klassen som inneholder isValidDate metoden.

importere java.text. *;

5 Åpne en prøve blokk i isValidDate metoden. Innenfor denne blokken opprette en ny SimpleDateFormat kalt format med format som input til sin konstruktør.

prøve{

SimpleDateFormat format = new SimpleDateFormat(form);

6 Ring format.setLenient (false) for å sikre at inngangs strengen vil være riktig analysert. Nå må du sende innspill strengen i format.parse () og lukk prøve blokken. Den SimpleDateFormat vil forsøke å matche input strengen til din gitt format. Hvis strengen inneholder en feil formatert dato, vil SimpleDateFormat kaste et unntak.

format.setLenient (false);
format.parse (input);
}

7 Utenfor prøve blokken, fange ParseException og IllegalArguementException. Return false hvis en av disse unntakene har oppstått.

fangst (ParseException e) {return false;}
fangst (IllegalArguementException e) {return false;}

8 Hvis programmet har nådd dette punktet, inngangs dato var gyldig, og du kan returnere true og lukke metode.

return true;

9 Integrer metoden inn i programmet. Ring isValidDate (input) på alle innspill streng. Metoden vil returnere true hvis strengen matcher datoformatet du angav i trinn tre.

Hint

  • Din siste metoden vil ligne på følgende:
  • boolean isValidDate (String input) {
  • String format = "MM / dd / åååå"
  • prøve{
  • SimpleDateFormat format = ny SimpleDateFormat (form);
  • format.setLenient (false);
  • format.parse (input);
  • }
  • fangst (ParseException e) {return false;}
  • fangst (IllegalArguementException e) {return false;}
  • return true;
  • }