Избранное сообщение

Фетісов В. С. Комп’ютерні технології в тестуванні. Навчально-методичний посібник. 2-ге видання, перероблене та доповнене / Мои публикации

В 10-х годах я принимал участие в программе Европейского Союза Tempus "Освітні вимірювання, адаптовані до стандартів ЄС". В рамк...

Благодаря Интернету количество писателей и поэтов увеличивается в геометрической прогрессии. Поголовье читателей начинает заметно отставать.

понедельник, 16 мая 2016 г.

Находим разницу между двумя датами в Java / Программирование на Java

Сегодня мы научимся находить разницу между 2 датами. Эта статья является продолжением раздела Java для начинающихВ этой статье мы научимся определять разницу между двумя датами в Java.

Для этого давайте вспомним как происходит преобразование даты из миллисекунд в секунды/минуты/часы/дни:
  • 1000 миллисекунд = 1 секунда
  • 60 000 миллисекунд = 60 секунд = 1 минута
  • 3 600 секунд = 60 минут = 1 час
  • 24 часа = 1 440 минут = 1 день
Теперь просто перенесем преобразования в пример на Java.

Как найти разницу между датами в Java?

На листинге ниже мы создаем 2 объекта Date в определенном формате и получаем значения каждой даты в миллисекундах с помощью метода getTime() и дальше проводим преобразования, представленные выше:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package ua.com.prologistic;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DifferenceBtwTwoDates {

    public static void main(String[] args) {
        try {
            // создаем формат, в котором будем парсить дату
            SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
            Date date1 = dateFormat.parse("15.05.2018");
            Date date2 = dateFormat.parse("17.05.2018");

            System.out.println("Первая дата: " + date1);
            System.out.println("Вторая дата: " + date2);

            long milliseconds = date2.getTime() - date1.getTime();
            System.out.println("\nРазница между датами в миллисекундах: " + milliseconds);

            // 1000 миллисекунд = 1 секунда
            int seconds = (int) (milliseconds / (1000));
            System.out.println("Разница между датами в секундах: " + seconds);

            // 60 000 миллисекунд = 60 секунд = 1 минута
            int minutes = (int) (milliseconds / (60 * 1000));
            System.out.println("Разница между датами в минутах: " + minutes);

            // 3 600 секунд = 60 минут = 1 час
            int hours = (int) (milliseconds / (60 * 60 * 1000));
            System.out.println("Разница между датами в часах: " + hours);

            // 24 часа = 1 440 минут = 1 день
            int days = (int) (milliseconds / (24 * 60 * 60 * 1000));
            System.out.println("Разница между датами в днях: " + days);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Теперь запустим программу и смотрим в консоль:
Первая дата: Tue May 15 00:00:00 EEST 2018
Вторая дата: Thu May 17 00:00:00 EEST 2018

Разница между датами в миллисекундах: 172800000
Разница между датами в секундах: 172800
Разница между датами в минутах: 2880
Разница между датами в часах: 48
Разница между датами в днях: 2
Обратите внимание, что в листинге мы явно отнимаем меньшую дату от большей. Если наоборот отнять большую дату от меньшей, то в результате получим такой же результат, но со знаком минус.

Источник: http://prologistic.com.ua/nahodim-raznitsu-mezhdu-dvumya-datami-v-java.html

Смотри также:

Комментариев нет:

Отправить комментарий