有没有最简单的方法可以找到本周的任何一天?(此函数返回真或假,与给定日期是否在本周有关)。
问问题
10100 次
5 回答
26
你肯定想使用 Calendar 类:http ://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html
这是一种方法:
public static boolean isDateInCurrentWeek(Date date) {
Calendar currentCalendar = Calendar.getInstance();
int week = currentCalendar.get(Calendar.WEEK_OF_YEAR);
int year = currentCalendar.get(Calendar.YEAR);
Calendar targetCalendar = Calendar.getInstance();
targetCalendar.setTime(date);
int targetWeek = targetCalendar.get(Calendar.WEEK_OF_YEAR);
int targetYear = targetCalendar.get(Calendar.YEAR);
return week == targetWeek && year == targetYear;
}
于 2012-04-25T10:35:03.580 回答
4
使用Calendar
该类获取 YEAR 和 WEEK_OF_YEAR 字段并查看两者是否相同。
请注意,结果会因地区而异,因为不同的文化对哪一天是一周的第一天有不同的看法。
于 2012-04-25T10:29:11.103 回答
2
于 2013-12-12T05:33:20.263 回答
0
这个答案适用于安卓。将您选择的日期日历对象放在下面的方法中,以检查您选择的日期是否为当前星期日期。
private boolean isCurrentWeekDateSelect(Calendar yourSelectedDate) {
Date ddd = yourSelectedDate.getTime();
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
Date monday = c.getTime();
Date nextMonday= new Date(monday.getTime()+7*24*60*60*1000);
return ddd.after(monday) && ddd.before(nextMonday);
}
Android 已经java.util.Calendar
为任何与日期和时间相关的查询提供了该类。
于 2018-06-30T05:08:02.843 回答
0
简单的 Kotlin 解决方案:
fun isDateInCurrentWeek(date: DateTime): Boolean {
val cal = Calendar.getInstance()
cal.add(Calendar.DAY_OF_WEEK, 0)
var dt= DateTime(cal.timeInMillis)
return date in dt..dt.plusDays(6)
}
于 2019-09-04T06:07:24.487 回答