java - 如何在 Java 中查找前 2 个星期一的日期?

标签 java date time

可能是这样的:

for(int i=0;i<15;i++){
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_MONTH, -1);

if (cal.Calendar.DAY_OF_WEEK==1){
System.out.println(cal.cal.getTime())

但可能存在更简单的方法? 谢谢。

最佳答案

你走在正确的轨道上。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, -7); // First week before
cal.add(Calendar.DAY_OF_YEAR, -7); // Second week before

让我只在星期一完成这项工作。

Calendar cal = Calendar.getInstance();

int weekday = cal.get(Calendar.DAY_OF_WEEK);
int days = (Calendar.SATURDAY - weekday + 2) % 7;

cal.add(Calendar.DAY_OF_YEAR, days);

cal.add(Calendar.DAY_OF_MONTH, -7);
cal.add(Calendar.DAY_OF_MONTH, -7);

关于java - 如何在 Java 中查找前 2 个星期一的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957405/

相关文章:

java - 如何检索与测试集关联的测试用例

java - 在 OOP 中添加/注册按钮监听器的样式(Java、Actionscript 等)

javascript - PHP "strtotime(' -11 个月的 JS 等价物')"

php,检查多个日期之间的差异,如何?

mysql - 安排事件并让事件跨越午夜

java - Grails 和多线程进程

java - 将函数从 Java 公开到 Rhino

javascript - 如何从非标准日期字符串中解析出日期

r - R中时变协变量Cox比例风险建模的数据格式

java - 有多少种方法不能构成三角形?