Avatar billede obix Nybegynder
06. december 2004 - 14:58 Der er 4 kommentarer og
1 løsning

Optimal måde at tjekke om en dato er valid

Jeg har fundet følgende.
package test;

import java.util.*;
import java.text.*;

public class Test {

    public static void main(String[] args) {
        String dateText = "78/78/78";
        Date theDate = null;
        DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT, Locale.UK);
        fmt.setLenient(false);
        try {
            theDate = fmt.parse(dateText);
        } catch (ParseException p) {
            p.printStackTrace();
        }
        System.out.println(theDate);
    }

}

Det virker også meget fint. Jeg bruger bare . som adskiller i stedet for / og af den grund skifter jeg det selv ud i strengen inden jeg validerer. Kan det gøres smartere så den f.eks. kan parse en dato hvor der bruges . som adskille tegn.

Eller er der en helt anden og smartere måde at validere om en dato er valid?
Avatar billede arne_v Ekspert
06. december 2004 - 15:02 #1
Jeg har engang lavet noget tilsvarende:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class CheckDate {
  private static DateFormat df = new SimpleDateFormat("yy-MM-dd");
    public static boolean isValidDate(String ds) throws ParseException {
      return ds.equals(df.format(df.parse(ds)));
    }
    private static void test(String ds) {
      try {
        System.out.println(ds + " " + isValidDate(ds));
      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
  public static void main(String[] args) {
      test("03-04-10");
      test("03-13-32");
      test("03-02-29");
      test("04-02-29");
  }
}
Avatar billede obix Nybegynder
06. december 2004 - 15:54 #2
Smart nok så er det heller ikke så svært at tilføje andre formater.
Giver du lige et svar. Så får du points.
Avatar billede arne_v Ekspert
06. december 2004 - 16:06 #3
Det angiver du jo bare i SimpleDateFormat constructor
Avatar billede arne_v Ekspert
01. januar 2005 - 13:44 #4
så mangler du bare at acceptere svaret
Avatar billede obix Nybegynder
03. januar 2005 - 08:04 #5
Sorry. Det er hermed gjort.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester