从现在到现在的Java循环年

时间:2019-02-19 07:55:07

标签: java for-loop

我尝试使用“时间/日期”格式进行循环播放,但我坚持使用它

所以我想从现在(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 :(得分:4)

摘自Date#getYear()的文档:

  

返回一个值,该值是从包含或由此日期对象表示的时间瞬间开始的年份中减去1900的结果,如当地时区所解释。

因此,您必须添加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

答案 1 :(得分:0)

使用日历:

Calendar calendar = Calendar.getInstance();   
for (int i = 0; i <= 5; i++) {
    System.out.println(calendar.get(Calendar.YEAR) - i);
} 

答案 2 :(得分:0)

尝试这个:

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

while(yearNow >= minYear) {
    System.out.println(yearNow--);
}

答案 3 :(得分:0)

我的逻辑低下... 我现在才明白,这很简单:

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

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

现在我只需要从Date.utils获取年份