有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

for loop Java循环从现在到现在的一年

我试图用时间/日期格式进行循环,但我坚持这样做

所以我想循环一年,从现在开始(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) 个答案

  1. # 1 楼答案

    我的逻辑很低。。。 我现在才明白,事情就这么简单:

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

    现在我只需要从约会开始算起几年。乌蒂尔斯

  2. # 2 楼答案

    使用日历:

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

    试试这个:

    LocalDate date = LocalDate.now();
    int yearNow = date.getYear();
    int minYear = yearNow - 5;
    
    while(yearNow >= minYear) {
        System.out.println(yearNow--);
    }
    
  4. # 4 楼答案

    Date#getYear()的文档中:

    Returns a value that is the result of subtracting 1900 from the year that contains or begins with the instant in time represented by this Date object, as interpreted in the local time zone.

    因此,您必须添加1900以获得正确的年份(在@Boristespider在其评论中指出的缺陷旁边)。但是有一种更好的方法,使用新的java.timeapi来取代旧的Dateapi:

    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