English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Controllo di流程 Java

Array Java

Java orientato agli oggetti (I)

Java orientato agli oggetti (II)

Java orientato agli oggetti (III)

Gestione eccezioni Java

List Java

Queue Java (coda)

Map collection Java

Set collection Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Somma di due date in un programma Java

Completo di esempi Java

In questo programma, imparerai a sommare due date utilizzando Calendar in Java.

Poiché l'era Java è il 1970, qualsiasi tempo rappresentato dall'oggetto Date non funziona. Questo significa che la tua data inizierà nel 1970 e quando si sommano due oggetti di data, la somma perderà circa il 1970. Quindi, usiamo Calendar.

Esempio: somma di due date

import java.util.Calendar;
public class AddDates {
    public static void main(String[] args) {
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        Calendar cTotal = (Calendar) c1.clone();
        cTotal.add(Calendar.YEAR, c2.get(Calendar.YEAR));
        cTotal.add(Calendar.MONTH, c2.get(Calendar.MONTH) + 1); // dal mese zero
        cTotal.add(Calendar.DATE, c2.get(Calendar.DATE));
        cTotal.add(Calendar.HOUR_OF_DAY, c2.get(Calendar.HOUR_OF_DAY));
        cTotal.add(Calendar.MINUTE, c2.get(Calendar.MINUTE));
        cTotal.add(Calendar.SECOND, c2.get(Calendar.SECOND));
        cTotal.add(Calendar.MILLISECOND, c2.get(Calendar.MILLISECOND));
        System.out.format("%s + %s = %s", c1.getTime(), c2.getTime(), cTotal.getTime());
    }
}

Quando si esegue il programma, l'output è:

Mar 08 ago 10:20:56 NPT 2017 + mar 08 ago 10:20:56 NPT 2017 = lun 16 apr 20:41:53 NPT 4035

Nel programma sopra, c1 e c2 memorizzano la data attuale. Poi, semplicemente cloniamo c1 e aggiungiamo uno per uno ogni proprietà DateTime di c2.

Come vedete, abbiamo aumentato di 1 nel mese. Questo perché nei Java, i mesi iniziano da 0.

Completo di esempi Java