Java Looping год отныне - PullRequest
       3

Java Looping год отныне

0 голосов
/ 19 февраля 2019

Я пытаюсь сделать цикл с форматом Время / Дата, но я застрял в makeit

Так что я хочу сделать цикл с года (с 2019 по 5 лет).

Date d = new Date();
long tahun = d.getYear();
long hitung = tahun - 5;

for (long i = tahun; i >= hitung; i--) {
 d = new Date(tahun);
 d.getYear()
}

На самом деле я ожидаю, что результат будет таким: 2019 2018 2017 2016 2015 2014

Ответы [ 4 ]

0 голосов
/ 19 февраля 2019

Моя логика низка ... Я только что понял, это просто так:

    int tahun = 2019;
    int hitung = tahun - 5;

    for (int i = tahun; i >= hitung; i--) {
        system.out.println(i)
    }

Теперь мне просто нужно получить Years from Date.utils

0 голосов
/ 19 февраля 2019

Использование календаря:

Calendar calendar = Calendar.getInstance();   
for (int i = 0; i <= 5; i++) {
    System.out.println(calendar.get(Calendar.YEAR) - i);
} 
0 голосов
/ 19 февраля 2019

Попробуйте это:

LocalDate date = LocalDate.now();
int yearNow = date.getYear();
int minYear = yearNow - 5;

while(yearNow >= minYear) {
    System.out.println(yearNow--);
}
0 голосов
/ 19 февраля 2019

Из документации Date#getYear():

Возвращает значение, являющееся результатом вычитания 1900 из года, который содержит или начинается с момента времени, представленного этим объектом Date, как интерпретируетсяв местном часовом поясе.

Так что вам нужно будет добавить 1900, чтобы получить правильный год (Рядом с недостатком @BorisTheSpider, указанным в его комментарии).Но есть и лучший способ, используя новый java.time API, который заменяет старый Date API:

LocalDate d = LocalDate.now();
for (int i = 0; i <= 5; i++) {
    System.out.println(d.getYear());
    d = d.minusYears(1);
}

Который печатает:

2019
2018
2017
2016
2015
2014
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...