Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    (java) GregorianCalendar

    Ho un programma in cui l'utente inserisce una data con l'anno a 4 cifre.
    Dal programma java vorrei prendermi solo le ultime due cifre
    Ho scritto questo codice che però mi restituisce l'anno a 4 cifre

    String datanascita = "10/10/2003";
    SimpleDateFormat formatodata = new SimpleDateFormat("dd/MM/yyyy");
    java.util.Date datanascita = formatodata.parse(datanascita);
    GregorianCalendar gc = new GregorianCalendar();
    gc.setTime(datanascita);
    int anno = gc.get(GregorianCalendar.YEAR);

    Potrei perndere la variabile anno trasformarla in stringa, fargli il substring e ritrasformarla in int.
    Volevo sapre se c'è un'altra soluzione che eviti di dover trasformare la variabile anno da int a stringa

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    nada?

  3. #3
    potresti farne il mod di 100.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    se faccio ad esempio

    int var = 2004;
    var = var % 100;

    dovrebbe venire 04 come vorrei, ma il java elimina lo zero iniziale e quindi mette var = 4

    Ma dal gregorian calendar non è possibile ricavare l'anno a 2 cifre invece che 4?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da abcd1000
    se faccio ad esempio

    int var = 2004;
    var = var % 100;

    dovrebbe venire 04 come vorrei, ma il java elimina lo zero iniziale e quindi mette var = 4

    Ma dal gregorian calendar non è possibile ricavare l'anno a 2 cifre invece che 4?
    Domanda: ma se tu, dopo queste operazioni, vuoi di nuovo inserire l'anno in un int, a cosa ti serve avere lo zero davanti, che verrebbe automaticamente eliminato dall'int?

    Leggendo questo, preso dal tuo primo post
    Potrei perndere la variabile anno trasformarla in stringa, fargli il substring e ritrasformarla in int.
    Volevo sapre se c'è un'altra soluzione che eviti di dover trasformare la variabile anno da int a stringa
    Io capisco che tu hai bisogno di una variabile intera che contiene l'anno in doppia cifra... ma un int non tiene conto degli zeri iniziali.

    Forse dovresti spiegare meglio quello che vuoi ottenere.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    ok
    allora volevo sapere se c'è un modo per far sputare dal gregorian calendar l'anno a due cifre

    se l'anno è 2004 mi deve rendere 04, poi se salvo il dato in un int e perdo lo zero davanti, mi va bene lo stesso

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Ok... allora non ho trovato nessun metodo che restituisce l'anno in doppia cifra, per cui ho sviluppato questa semplice funzione:
    codice:
    public  String formatta(int anno) {
       String tmp = "" + anno;
       return tmp.substring(tmp.length() - 2, tmp.length());
    }
    che prende l'anno come intero restituito dal GregorianCalendar e ritorna le ultime due cifre (ovviamente come stringa, altrimenti perdi lo 0).

    Ma mi sorge una domanda: visto che tu la data ce l'hai già come stringa... perchè passare per il GregorianCalendar (quindi anche per un oggetto Date) e per il SimpleDateFormat, quando puoi semplicemente applicare la substring alla stringa iniziale? Forse per un controllo sulla validità della data?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    esatto per un controllo di validità

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.