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

Основной курс Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Списки (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Сложение двух дат в Java-программе

Java полный список примеров

В этом приложении вы узнаете, как добавлять даты с помощью Calendar в Java.

Поскольку эра Java начинается с 1970 года, любое время, представленное объектом Date, не работает. Это означает, что ваши даты начнутся с 1970 года, и при сложении двух объектов дат总和 потеряется около 1970 года. Поэтому мы используем Calendar.

Пример: сложение двух дат

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); // Отсчет месяцев начинается с нуля
        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());
    }
}

При выполнении этой программы, вывод будет:

Tue Aug 08 10:20:56 NPT 2017 + Tue Aug 08 10:20:56 NPT 2017 = Mon Apr 16 20:41:53 NPT 4035

В上面的 программе, c1 и c2 хранят текущую дату. Затем мы просто клонируем c1 и добавляем каждый DateTime атрибут c2 последовательно.

Как вы видите, мы добавили 1 в месяц. Это потому, что в Java месяц начинается с 0.

Java полный список примеров