В ходе переписывания исходного кода из учебника столкнулся с такой строкой:
date = date.minusDays(today-1); // задать первый день месяца
Попытавшись разобраться, как это работает так ни к чему и не пришел. В документации указано, что этот метод "Returns a copy of this LocalDate with the specified number of days subtracted.", то есть если я создаю объект date, и инициализирую его текущей датой (18.9.2018 например), то согласно описания .minusDays() я должен получить 17.9.2018.
В действительности я получаю 1.9.2018, отладчик это подтверждает:
Кто-нибудь может подсказать, почему это происходит, а то для меня это сейчас выглядит как магия, а я не люблю магию.
Полный текст программы
import java.time.*;
public class CalendarTest {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
int month = date.getMonthValue();
int today = date.getDayOfMonth();
date = date.minusDays(today-1);
DayOfWeek weekday = date.getDayOfWeek();
int value = weekday.getValue();
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for (int i = 1; i<value; i++) {
System.out.print(" ");
}
while (date.getMonthValue() == month) {
System.out.printf("%3d", date.getDayOfMonth());
if (date.getDayOfMonth() == today) {
System.out.print("*");
}
else {
System.out.print(" ");
}
date = date.plusDays(1);
if (date.getDayOfWeek().getValue() == 1) {
System.out.println();
}
}
}
}
Все вроде правильно.
LocalDate date = LocalDate.now();
Здесь вы получаете текущую дату - 18.9.2018
int today = date.getDayOfMonth();
здесь - текущий день месяца по счету, это 18
date = date.minusDays(today-1);
вычитаете одно из другого 18.9.2018 - (18 дней - 1 день) = 1.09.2018Т.о. здесь вы не получаете какой то новой даты инициализированной вчерашним днем, а просто проводите математическую операцию по вычитанию параметра в скобках из даты, полученной изначально.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
вот код
При старте приложения в логе присутствует вот такой Warning:
Решил разобраться с REST APIДопустим, пусть есть водитель и у него есть машина, которая должна уметь ездить, останавливаться, каждые 100км нужна...