Сегодня мы научимся находить разницу между 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
Смотри также:
- Как вы можете сделать Java лучше. http://fetisovvs.blogspot.com/2016/05/apache-poi-microsoft-office-java-java.html
- Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java. http://fetisovvs.blogspot.com/2015/12/java-5-java-java.html
- Шпаргалка Java программиста 7.1 Типовые задачи: Оптимальный путь преобразования InputStream в строку. http://fetisovvs.blogspot.com/2016/04/java-71-inputstream-java.html
- Шпаргалка Java программиста 8. Библиотеки для работы с Json (Gson, Fastjson, LoganSquare, Jackson, JsonPath и другие). http://fetisovvs.blogspot.com/2016/04/java-8-json-gson-fastjson-logansquare.html
- Как установить соединение с СУБД MySQL в IntelliJ IDEA в редакции Community. http://fetisovvs.blogspot.com/2016/04/mysql-intellij-idea-community-java.html
- Программируем… выход из лабиринта. http://fetisovvs.blogspot.com/2015/10/java.html
- Игра на чистой Java от новичка, для новичков. http://fetisovvs.blogspot.com/2015/09/java-java.html
Комментариев нет:
Отправить комментарий