问题描述
我尝试使用时间/日期格式进行循环播放,但我坚持使用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
1楼
从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
2楼
使用日历:
Calendar calendar = Calendar.getInstance();
for (int i = 0; i <= 5; i++) {
System.out.println(calendar.get(Calendar.YEAR) - i);
}
3楼
试试这个:
LocalDate date = LocalDate.now();
int yearNow = date.getYear();
int minYear = yearNow - 5;
while(yearNow >= minYear) {
System.out.println(yearNow--);
}
4楼
我的逻辑很低...我现在才明白,这很简单:
int tahun = 2019;
int hitung = tahun - 5;
for (int i = tahun; i >= hitung; i--) {
system.out.println(i)
}
现在我只需要从Date.utils获取Years