关于时间的输出效果不理想

现在输出是2023-20231-1
2023-20231-2
2023-20232-1,但想要2023-2024-1
2023-2024-2
2024-2025-1
2024-2025-2这种效果,怎么改呢

img

【以下回答由 GPT 生成】

for (int i = 1; i <= major.getYear(); i++) {
    YearSystem yearSystem = new YearSystem();
    yearSystem.setClassId(entity.getId());

    // Calculate the start year and end year for each semester
    int startYear = entity.getYear() + i - 1;
    int endYear = entity.getYear() + i;

    // Format the semester string using the correct start and end years
    String semester1 = String.format(Locale.ROOT, "%d-%d-%d", startYear, endYear, 1);
    yearSystem.setSemester(semester1);
    yearSystem.setOrderBy(2 * i - 1);
    beans.add(yearSystem);

    YearSystem yearSystem2 = new YearSystem();
    yearSystem2.setClassId(entity.getId());
    String semester2 = String.format(Locale.ROOT, "%d-%d-%d", startYear, endYear, 2);
    yearSystem2.setSemester(semester2);
    yearSystem2.setOrderBy(2 * i);
    beans.add(yearSystem2);
}

Explanation:

To generate the desired output format, you need to modify the code as follows:

  1. Instead of using entity.getYear() + i to calculate the end year, use entity.getYear() + i - 1 to calculate the start year and entity.getYear() + i to calculate the end year for each semester. This ensures that the start year and end year are correct for each semester.

  2. Use the correct start and end years in the String.format method to generate the semester string. Replace entity.getYear() with startYear and entity.getYear() + i with endYear.

By making these modifications, the code will generate the desired output format: 2023-2024-1, 2023-2024-2, 2024-2025-1, 2024-2025-2.


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

三个%s改成三个%d

如果要将String类型的年份进行相加后再输出,可以先将Sting类型的值转为int类型的值后再操作。

测试代码如下:

参考链接:


JAVA 中 string 和 int 互相转化 | 菜鸟教程 1 如何将字串 String 转换成整数 int? A. 有两个方法: 1、 int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2、 int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成.. https://www.runoob.com/w3cnote/java-string-and-int-convert.html


YearSystem.java:


package yearsystem;

public class YearSystem {

    public String Year;

    public String getYear() {
        return Year;
    }

    public void setYear(String year) {
        Year = year;
    }
    
    
        
}


Test.java:



package yearsystem;

import java.util.ArrayList;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        YearSystem yearSystem = new YearSystem();
        yearSystem.setYear("2023");

        // https://www.runoob.com/w3cnote/java-string-and-int-convert.html
        // 年份由String转为int后,再进行年份加减操作
        int year = Integer.parseInt(yearSystem.getYear());
        
        ArrayList beans = new ArrayList();

        for(int i=1;i<=5;i++) {
                
            // https://blog.csdn.net/lonely_fireworks/article/details/7962171
            // 下面年份year后面具体是加1,还是加循环变量i,可以根据要输出的数据格式来设置
            String semester = String.format("%s-%s-%s",year,year+1,1);
            beans.add(semester);
            
            String semester1 = String.format("%s-%s-%s",year,year+1,2);
            beans.add(semester1);
            
            year++;
                
        }
        
        // 打印结果
        for(Object str:beans) {
            System.out.println(str);
        }
        
        
    }

}


img