[英]How I get data week wise from a calendar year according to calendar week in Java
I am not able to separate data dynamically week wise from a calendar year according to calendar week. 我无法根据日历周从日历年中每周动态地自动分离数据。
Suppose I have a calendar month of January-2019 and I want to separate data weekly, then we have 5 weeks for this month 假设我的日历月是2019年1月,我想每周分离一次数据,那么这个月我们有5周的时间
1st week from 1-jan to 6-jan
2nd week from 7-jan to 13-jan
3rd week from 14-jan to 20-jan
4th week from 21-jan to 27-jan and
5th week from 28-jan to 31 Jan and so on...
Can any body suggest anybody how I do that. 任何人都可以建议任何人我该怎么做。
What about this: 那这个呢:
//create calendar with locale
Calendar cal = Calendar.getInstance(Locale.GERMANY);
//week of year you want
int weekOfYear = 4;
//set calendar to specified week of year
cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);
//set calendar to first day of the week
//(might be different in different locales)
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
//print dates of this week
DateFormat df = new SimpleDateFormat("EEE yyyy/MM/dd");
for (int i = 0; i < 7; i++) {
System.out.println(df.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
}
It's set up for the 4th week of year (by setting weekOfYear
to 4
) and prints the following: 它设置为一年的第4周(通过将
weekOfYear
设置为4
)并打印以下内容:
Mon 2019/01/21
Tue 2019/01/22
Wed 2019/01/23
Thu 2019/01/24
Fri 2019/01/25
Sat 2019/01/26
Sun 2019/01/27
Is that what you need? 那是你需要的吗?
EDIT: Or even this (closer to your request): 编辑:甚至这个(更接近您的要求):
//create calendar with locale
Calendar cal = Calendar.getInstance(Locale.GERMANY);
//weeks of year you want
int fromWeek = 1;
int toWeek = 10;
//date format
DateFormat df = new SimpleDateFormat("EEE yyyy/MM/dd");
//print date range
for (int i = fromWeek; i <= toWeek; i++) {
//set calendar to specified week of year
cal.set(Calendar.WEEK_OF_YEAR, i);
//set calendar to first day of the week
//(might be different in different locales)
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
//print date range of this week
System.out.print(
"Week no. " + i + " from " +
df.format(cal.getTime()) + " to "
);
cal.add(Calendar.DAY_OF_YEAR, 6);
System.out.println(df.format(cal.getTime()));
}
It prints: 它打印:
Week no. 1 from Mon 2018/12/31 to Sun 2019/01/06
Week no. 2 from Mon 2019/01/07 to Sun 2019/01/13
Week no. 3 from Mon 2019/01/14 to Sun 2019/01/20
Week no. 4 from Mon 2019/01/21 to Sun 2019/01/27
Week no. 5 from Mon 2019/01/28 to Sun 2019/02/03
Week no. 6 from Mon 2019/02/04 to Sun 2019/02/10
Week no. 7 from Mon 2019/02/11 to Sun 2019/02/17
Week no. 8 from Mon 2019/02/18 to Sun 2019/02/24
Week no. 9 from Mon 2019/02/25 to Sun 2019/03/03
Week no. 10 from Mon 2019/03/04 to Sun 2019/03/10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.