我的循环遇到问题。我想做的是我要写下12月整个月的日期,然后再输入2019年的总日期。但是我现在遇到的问题是2019年的总日期没有显示在与2018年12月的总日相同的列的行下
我当前的输出(2018年12月31日的行号位于第34行:
MONTH
------
2018-12-01
2018-12-02
2018-12-03
2018-12-04
...
2018-12-31
我认为我的问题在于getRow和循环。请帮助我。
// month
int maxDay = cal1.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int dec = 1; dec <= maxDay; dec++) {
Row row3 = sheet.getRow(dec + 2);
Cell cell1 = row3 .createCell(2);
cal1.set(Calendar.YEAR, 2018);
cal1.set(Calendar.MONTH, 11);
cal1.set(Calendar.DAY_OF_MONTH, 1);
cal1.set(Calendar.DAY_OF_MONTH, dec);
java.util.Date date1 = cal1.getTime();
cell1.setCellValue(formatter.format(date1));
}
// for total date of a year 2018
for (int notdec = 1; notdec <= 365; notdec++) {
Row row3 = sheet.getRow(maxDay+3);
Cell cell1 = row3.getCell(2);
cal.set(Calendar.YEAR, 2019);
cal.set(Calendar.DAY_OF_YEAR, notdec);
java.util.Date date = cal.getTime();
cell1.setCellValue(formatter.format(date));
}
答案 0 :(得分:0)
这是您的代码, 适用于2018
for (int dec = 1; dec <= maxDay; dec++) {
Row row3 = sheet.getRow(dec + 2);
Cell cell1 = row3 .createCell(2);
cal1.set(Calendar.YEAR, 2018);
cal1.set(Calendar.MONTH, 11);
cal1.set(Calendar.DAY_OF_MONTH, 1);
cal1.set(Calendar.DAY_OF_MONTH, dec);
java.util.Date date1 = cal1.getTime();
cell1.setCellValue(formatter.format(date1));
}
因此,在此基础上继续进行,一开始,使用相同的代码并仅更改需要更改的内容是合乎逻辑的
for (int notdec = 1; notdec <= 365; notdec++) {
Row row3 = sheet.getRow(maxDay +3 + notdec); // THIS
Cell cell1 = row3.createCell(2); // THIS
cal1.set(Calendar.YEAR, 2019); // THIS
cal1.set(Calendar.DAY_OF_YEAR, notdec); // THIS
java.util.Date date1 = cal1.getTime();
cell1.setCellValue(formatter.format(date1));
}
由于您没有输入所需的输出,我想这可能就是您想要的