如何在java中获取所选日期的周?

时间:2017-07-24 10:26:18

标签: java android

如何获得特定日期的周?

例如: 我的星期将从星期一开始,到星期日结束。 所以,假设我选择了2017年7月25日。所以我想要那个星期一的星期几是什么日期,那个星期日即将到来的星期几。

答案应该是:2017年7月24日星期一和2017年7月30日星期日。

我无法找到一种简单的方法来获取它。

2 个答案:

答案 0 :(得分:1)

你可以这样:

String date = (String) android.text.format.DateFormat.format("dd", date);
String dayOfTheWeek = (String) DateFormat.format("EEEE", date); 

对于下周日,你可以按照每天的时间来计算。

答案 1 :(得分:1)

你可以看到这个。这是目前的日期。

Calendar cal = Calendar.getInstance();
int week = cal.get(Calendar.WEEK_OF_MONTH);
int day = cal.get(Calendar.DAY_OF_WEEK);
System.out.println(day);
Date mondayDate = null;
if (day > 2) {
  int monday = day - 2;
  cal.add(Calendar.DATE, -monday);
  mondayDate = cal.getTime();
} else {

  // cal.add(Calendar.DATE,);
  mondayDate = cal.getTime();
}

int sunday = 7 - day + 1;
cal.add(Calendar.DATE, +sunday);
Date sundaydate = cal.getTime();
System.out.println(mondayDate);
System.out.println(sundaydate);
}

在这里,我们找到了星期几。今天我们会得到  天= 2。

现在星期一,我们将首先检查几天。

如果day = 1,则表示它是星期日。

如果day = 2,则表示它是星期一。 所以对于日> 2,我们得到(第2天)日期。今天,天= 1。因此mondaydate = 2017年7月23日。

类似于星期天,我们将获得(7天+ 1天)之后的日期。今天,星期日= 5,所以在+6之后,sundaydate = 2017年7月31日

希望这会有所帮助:)