如何获得本年度一周的总人数 [英] how to get total number of week in the current year

查看:117
本文介绍了如何获得本年度一周的总人数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆