首页 / JAVA / java-如何获取当年的总周数?
java-如何获取当年的总周数?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何获取当年的总周数?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2119字,纯文字阅读大概需要4分钟。
内容图文
![java-如何获取当年的总周数?](/upload/InfoBanner/zyjiaocheng/695/22f6f77c25ee455493c49fc63df5d167.jpg)
我在stackoverflow上获得了下面的代码,该代码返回了当年的总星期数,但是它被硬编码,在2014年和2016年不起作用.如何动态获取当年的总星期数?
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);
我这样做只是检查它是否是当前方法?
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);
解决方法:
使用下面的代码
Calendar mCalendar = new GregorianCalendar();
mCalendar.set(Calendar.YEAR, 2014); // Set only year
mCalendar.set(Calendar.MONTH, Calendar.DECEMBER); // Don't change
mCalendar.set(Calendar.DAY_OF_MONTH, 31); // Don't change
int totalWeeks = mCalendar.get(Calendar.WEEK_OF_YEAR);
不必理会每月的30、28和29天.一年的最后一天(每年)始终是12月31日.因此,您需要设置这一天.而mCalendar.get(Calendar.WEEK_OF_YEAR)将返回该年的总周数.
动态更新
private int getTotalWeeksInYear(int year) {
Calendar mCalendar = new GregorianCalendar();
mCalendar.set(Calendar.YEAR, year); // Set only year
mCalendar.set(Calendar.MONTH, Calendar.DECEMBER); // 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);
在上面的代码中寻找错误.到时候您可以使用正常工作的以下代码
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;
}
内容总结
以上是互联网集市为您收集整理的java-如何获取当年的总周数?全部内容,希望文章能够帮你解决java-如何获取当年的总周数?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。