给周编号和年份找到星期的第一天和最后一天
问题描述:
我有周数和年份,我想要得到星期的第一天和最后一天的日期,这是我的代码,它给出我错了结果,请告诉我我做错了什么。提前致谢。给周编号和年份找到星期的第一天和最后一天
SimpleDateFormat dt = new SimpleDateFormat("dd/mm/yyyy");
String start ="";
String end ="";
int week = 38;
int yeat = 2016;
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);
// firt day of week
start = dt.format(calendar.getTime());
calendar.add(Calendar.DAY_OF_MONTH, 6);
//last day of week
end = dt.format(calendar.getTime());
答
- 更正DateFormatter语法,一个月应该在死刑案件
-
获取周日和周六日起在特定的一周中, 一年过去了。
SimpleDateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); String start =""; String end =""; int week = 38; int year = 2016; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY); calendar.set(Calendar.WEEK_OF_YEAR, week); start = dt.format(calendar.getTime()); calendar.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY); end = dt.format(calendar.getTime()); System.out.println(start+" |"+end);
答
如果您使用Java 8+,你可以使用内置的周日期格式:
int week = 38;
int year = 2016;
String weekYear = year + "-W" + week + "-7"; //2016-W38-7
LocalDate d = LocalDate.parse(year + "-W" + week + "-7", ISO_WEEK_DATE); //2016-09-25
注:-7
在字符串的结尾表示一周的最后一天(即星期日)。
答
试试这个:
SimpleDateFormat dt = new SimpleDateFormat("dd/mm/yyyy");
String start ="";
String end ="";
int week = 38;
int year = 2016;
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);
// firt day of week
Calendar cal = calendar;
while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
cal.add(Calendar.DATE, -1);
}
start = dt.format(cal.getTime());
System.out.println(start);
Calendar cal1 = calendar;
while (cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {
cal1.add(Calendar.DATE, 1);
}
//last day of week
end = dt.format(cal1.getTime());
System.out.println(end);
可能重复:如何计算在Java的ISO8601星期数日期(http://*.com/q/25084576/642706) –