Jav*_*ner 6 java calendar date simpledateformat
我的报告页面使用 java date java.util.Calendar 和 java.text.SimpleDateFormat 。
我想始终将开始日期设置为上一个星期六,并将结束日期设置为该星期六之后的星期五。
我写了一个 Java 代码来检查这个并按如下方式执行,但我确信它的逻辑是错误的
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -7);
setToDate(sdf.format(cal.getTime()));
cal.add(Calendar.DATE, -6);
setFromDate(sdf.format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
如何获取上一个 FromDate(yyyy-mm-dd) 和 ToDate(yyyy-mm-dd) 其中 FromDate 应该是上周六,ToDate 应该是上周五。


int daysBackToSat = cal.get(Calendar.DAY_OF_WEEK );
cal.add(Calendar.DATE, daysBackToSat*-1);
System.out.println(sdf.format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
在第 1 行中,您会得到一个指示当前星期几的数字。1 表示星期日,7 表示星期六,6 表示星期五,依此类推。如果今天是星期三,您将得到 4。由于星期六是 7 并且 tehre 不是“第 0 天”,因此您从当前日期中减去 4 天(第 2 行)。为了得到星期六后的下一个星期五,您只需添加 6 天。
编辑:考虑到你的更新,我发现,如果是星期三,你不想在那之前有星期六,但要提前 1 周。如果已经是星期六,您将只返回 1 周。在这种情况下,您检查“daysBackToSat”是否为 7,则保留该值,如果小于 7,则再添加 7。
if(daysBackToSat<7) {
daysBackToSat += 7;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6560 次 |
| 最近记录: |