java - Java Looping 年从现在到后面
问题描述
我尝试使用格式时间/日期进行循环,但我坚持使用它
所以我想循环一年,从现在(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
解决方案
从以下文档Date#getYear()
:
返回一个值,该值是从包含或开始于此 Date 对象表示的时间瞬间的年份减去 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
推荐阅读
- python - 计算复矩阵的行列式以检查特征值计算
- javascript - 与属性“getOptionLabel”一起使用时,material-ui 自动完成属性“值”不可用
- visual-studio - 为什么 Visual Studio 有时会使用旧代码运行?
- python - 如何最好地一次提交多个 Django formset_factory 表单?
- rabbitmq - 使用 MassTransit/RabbitMQ 更改消息优先级
- javascript - 我在 JavaScript 中收到错误“无法读取未定义的属性 'innerHTML'”。请帮忙!我是 JS 新手。代码附在下面。谢谢
- c++ - 例外情况:检查元素是否已存在于数组c++中
- javascript - Fetch API promise - JavaScript 和 HTML 连接
- c++ - 为什么 C++ 标准委员会没有将 std::hash 包含在 pair 和 tuple 中?
- laravel - 您是否需要测试已通过其他测试测试过的功能?