如何获得本年度一周的总人数 [英] how to get total number of week in the current year
问题描述
我有以下code对计算器这回在当年周的总数,但很难codeD which'll不是在2014年和2016年工作,我怎么会在本年度星期总数动态???
日历CAL = Calendar.getInstance();
cal.set(Calendar.YEAR,2015年);
cal.set(Calendar.MONTH,Calendar.DECEMBER);
cal.set(Calendar.DAY_OF_MONTH,31);
INT ordinalDay = cal.get(Calendar.DAY_OF_YEAR);
INT平日= cal.get(Calendar.DAY_OF_WEEK) - 1; //星期日= 0
INT numberOfWeeks =(ordinalDay - 平日+ 10)/ 7;
的System.out.println(numberOfWeeks);
我不喜欢这只是检查是目前的方法?
日历CAL = Calendar.getInstance();
INT年= cal.get(Calendar.YEAR);
cal.set(Calendar.YEAR,一年);
cal.set(Calendar.MONTH,Calendar.DECEMBER);
cal.set(Calendar.DAY_OF_MONTH,31);
INT ordinalDay = cal.get(Calendar.DAY_OF_YEAR);
INT平日= cal.get(Calendar.DAY_OF_WEEK) - 1; //星期日= 0
INT numberOfWeeks =(ordinalDay - 平日+ 10)/ 7;
的System.out.println(numberOfWeeks);
使用下面的code
日历mCalendar =新的GregorianCalendar();
mCalendar.set(Calendar.YEAR,2014年); //设置仅一年
mCalendar.set(Calendar.MONTH,12); //不要改变
mCalendar.set(Calendar.DAY_OF_MONTH,31); //不要改变
INT totalWeeks = mCalendar.get(Calendar.WEEK_OF_YEAR);
不要在乎30,28 29天一个月。最后一天一年(任何一年)始终是12月31日所以,你需要的那一天设置。而 mCalendar.get(Calendar.WEEK_OF_YEAR)
返回周总在这一年。的
更新动态的方式的
私人诠释getTotalWeeksInYear(INT年){
日历mCalendar =新的GregorianCalendar();
mCalendar.set(Calendar.YEAR,一年); //设置仅一年
mCalendar.set(Calendar.MONTH,12); //不要改变
mCalendar.set(Calendar.DAY_OF_MONTH,31); //不要改变
返回mCalendar.get(Calendar.WEEK_OF_YEAR);
}
//调用作为
INT totalWeeks = getTotalWeeksInYear(2014年);
寻找在上述code错误。到时候,你可以使用下面code,它是工作的罚款
私人诠释getTotalWeeksInYear(INT年){
日历mCalendar =新的GregorianCalendar(TimeZone.getDefault());
mCalendar.setFirstDayOfWeek(Calendar.MONDAY);
//解决方法
mCalendar.set(年,
Calendar.DECEMBER,
31);
INT totalDaysInYear = mCalendar.get(Calendar.DAY_OF_YEAR);
的System.out.println(totalDaysInYear);
INT totalWeeks = totalDaysInYear / 7;
返回totalWeeks;
}
I got below code on stackoverflow which return total number of week in current year, but it is hardcoded which'll not work on 2014 and 2016. How I get total number of week in current year dynamically???
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2015);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DAY_OF_MONTH, 31);
int ordinalDay = cal.get(Calendar.DAY_OF_YEAR);
int weekDay = cal.get(Calendar.DAY_OF_WEEK) - 1; // Sunday = 0
int numberOfWeeks = (ordinalDay - weekDay + 10) / 7;
System.out.println(numberOfWeeks);
i did like this just check it is current method?
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DAY_OF_MONTH, 31);
int ordinalDay = cal.get(Calendar.DAY_OF_YEAR);
int weekDay = cal.get(Calendar.DAY_OF_WEEK) - 1; // Sunday = 0
int numberOfWeeks = (ordinalDay - weekDay + 10) / 7;
System.out.println(numberOfWeeks);
Use the below code
Calendar mCalendar = new GregorianCalendar();
mCalendar.set(Calendar.YEAR, 2014); // Set only year
mCalendar.set(Calendar.MONTH, 12); // Don't change
mCalendar.set(Calendar.DAY_OF_MONTH, 31); // Don't change
int totalWeeks = mCalendar.get(Calendar.WEEK_OF_YEAR);
Don't care about 30, 28 and 29 days of month. Last day of a year (Any year) is always 31 Dec. So you need to set that day. And mCalendar.get(Calendar.WEEK_OF_YEAR)
will return the total weeks in that year.
Update for dynamic way
private int getTotalWeeksInYear(int year) {
Calendar mCalendar = new GregorianCalendar();
mCalendar.set(Calendar.YEAR, year); // Set only year
mCalendar.set(Calendar.MONTH, 12); // Don't change
mCalendar.set(Calendar.DAY_OF_MONTH, 31); // Don't change
return mCalendar.get(Calendar.WEEK_OF_YEAR);
}
// Call as
int totalWeeks = getTotalWeeksInYear(2014);
Looking for bug in above code. By the time you can use below code that is working fine
private int getTotalWeeksInYear(int year) {
Calendar mCalendar = new GregorianCalendar(TimeZone.getDefault());
mCalendar.setFirstDayOfWeek(Calendar.MONDAY);
// Workaround
mCalendar.set(year,
Calendar.DECEMBER,
31);
int totalDaysInYear = mCalendar.get(Calendar.DAY_OF_YEAR);
System.out.println(totalDaysInYear);
int totalWeeks = totalDaysInYear / 7;
return totalWeeks;
}
这篇关于如何获得本年度一周的总人数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!