Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    java.util.Date, data superiore a 4 mesi

    Ragazzi...come faccio a incrementare una data con 4 mesi in più?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: java.util.Date, data superiore a 4 mesi

    Originariamente inviato da PerformancePort
    Ragazzi...come faccio a incrementare una data con 4 mesi in più?
    La questione è che nel Date c'è solo un numero di millisecondi. Quindi parlare di "mesi" ... è vago e poco appropriato. Se puoi specificare un numero di giorni preciso, è facile calcolare il numero di millisecondi da aggiungere.

    Altrimenti ti conviene mettere il Date in un (Gregorian)Calendar e usare il add() per aggiungere ad esempio 4 sul field MONTH. Lasciando a lui l'incombenza di fare tutti i calcoli (c'è solo la questione del trattamento lenient oppure non-lenient, cioè il fatto che possa risultare una data non valida e come trattarla).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Capito, per esempio mettendo:

    M'instanzio calendar,col settime passo la data e poi con add faccio semplicemente:

    Codice PHP:
    c.add(Calendar.MONTH, +2); 
    vuol dire che al mese passato al calendar, ne sommo altri 2 giusto?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da PerformancePort
    vuol dire che al mese passato al calendar, ne sommo altri 2 giusto?
    Esatto. A parte il fatto, lo ripeto, che bisognerebbe considerare l'eventualità di ottenere una data non valida (non esistente).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Però nn mi torna una cosa. Ho una data nel db per esempio 10/02/2010. Se questa data è maggiore di due mesi rispetto a quella odierna sollevo un'eccezione.

    Quindi dovrei recuperarmi la data del db, poi la data odierna che la metto in un gregorian è la sottraggo di 2. Se la data del db è afert la data odierna -2 mesi vuol dire che dovrò sollevare l'eccezione?

  6. #6

    perchè complicarsi la vita....?

    Scusami, ma se la data da incrementare è sul db perchè non usi le funzioni sql per le date?

    Es. Sul db ho una colonna con campo data impostata al 02/03/2010.

    La funzione sql (almeno du dB Oracle è cosi):
    codice:
    add_months(data,n)
    dove n è il numero di mesi (positivo o negativo) da aggiungere al valore di data

    Allo stesso modo potresti utilizzare la funzione in una query sul Db del tipo

    codice:
    Select "qualcosa" 
    from "mia_tabella" 
    where trunc(campo_data_nel_dB) < trunc(add_months(sysdate,2))
    la funzione trunc serve per usare le date troncate ai soli giorni-mesi-anni senza ora e minuti

    La query restituisce "qualcosa" quando la data nel dB è minore della data odierna + 2 mesi
    Nel momento in cui la data nel dB è = o > della data odierna + 2 mesi la query solleverà un eccezione di no data found che a quel punto puoi utilizzare...

    Ovviamente quanto ho scritto non è la panacea ma solo un esempio grezzo di cosa è possibile fare..

    ciao

  7. #7
    Però...io cmq ho risolto lato codice con la classe Calendari...però grazie comunque...magari col DB mi tornerà anche utile ^^.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.