Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Java : ereditare Date

  1. #1

    Java : ereditare Date

    ciao a tutti...

    ho la necessità di creare un oggetto date a partire da una stringa, posso ereditare la classe date e fare un overload del costruttore?

    se si come faccio???

    es:
    class MyData extends Date{
    public MyData(String data){
    super(anno,mese,giorno);
    int giorno = Integer.parseInt(data.substring(1,2));
    int mese = Integer.parseInt(data.substring(4,5));
    int anno = Integer.parseInt(data.substring(6,10));

    }
    }

    come faccio a chiamare il costruttore con i valori integer quando li devo ancora copiare dalla stringa??

  2. #2
    Utente bannato
    Registrato dal
    Sep 2001
    Messaggi
    413
    ho dovuto fare la stessa cosa per una mia classe date.. se vuoi te la posto

  3. #3
    Magari!!!!

    ti ringrazio tanto

  4. #4
    Utente bannato
    Registrato dal
    Sep 2001
    Messaggi
    413
    anzi...

    la classe è troppo grossa, ti posto un consiglio che faccio prima ( la mia era un estensione della java.sql.Date )


    dunque estendi la Date e crei un costruttore con parametro String che non fa altro che

    public Date( String data ){

    super( geDateFromString( data ).getTime() );

    }

  5. #5
    ci provo subito

  6. #6
    dove è contenuta "getDateFromString"??

    mi da errore.

  7. #7
    Prova così:
    codice:
    
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH.mm.ss");
    Date d;
    // strTime è la stringa che contiene la data
    try{
        d = sdf.parse(strTime);
    }
    catch(Exception e){
        d = new java.util.Date();
    }
    


    mandi mandi
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  8. #8
    Utente bannato
    Registrato dal
    Sep 2001
    Messaggi
    413
    :gren: :gren: :gren:

    mi devi scusare... non ti ho postato anche il getDateFromString artigianale... che prende anche parte della data come argomento e la completa con mese e anno attuali

    fatti una costante SEPARATORE private dove ci metti il separatore...

    eccolo


    private static Date geDateFromString( String data ){

    Date ritorno;

    data = data.trim();

    return completamentoAutomatico( data );

    }


    private Date completamentoAutomatico(String data){

    if( data.length() > 10 )
    //throw new VEDI TU!
    char[] dataArray = data.toCharArray();
    int stato = 1;
    int gg = 0;
    int mm = 0;
    int aaaa = 0;

    for( int j = 0; j < dataArray.length; j++ ){

    if( dataArray[ j ] == SEPARATORE){

    stato++;
    j++;

    }

    if( stato == 1 ){

    gg = gg * 10 + Integer.parseInt( "" + dataArray[ j ] );

    }else if( stato == 2 ){

    mm = mm * 10 + Integer.parseInt( "" + dataArray[ j ] );

    }else if( stato == 3 ){

    aaaa = aaaa * 10 + Integer.parseInt( "" + dataArray[ j ] );

    }

    }

    if( stato > 3 )
    //throw new VEDI TU!!
    if( mm == 0 ){
    mm = new java.util.GregorianCalendar().get( java.util.GregorianCalendar.MONTH );
    }else{
    mm--;
    }

    if( aaaa == 0 ){
    aaaa = new java.util.GregorianCalendar().get( java.util.GregorianCalendar.YEAR );
    }else if( aaaa < 100 ){
    aaaa += 2000;
    }

    return new Date( new java.util.GregorianCalendar(aaaa,mm,gg).getTime() );

    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.