java如何设置某个时间为第一周?

假如我想设置今年的3月1日为今年的第一周这个怎么设置呢?然后以这个基础上来判断当前是第几周,

 Calendar c = new GregorianCalendar(); 
        c.set(Calendar.YEAR, 2017); 
        c.set (Calendar.MONTH, Calendar.MAY); 
        c.set(Calendar.DATE, 20);//2017年5月20号
        Calendar now = Calendar.getInstance();//现在  5月24号
         //WEEK_OF_YEAR不支持跨年
    System.err.println( now.get(Calendar.WEEK_OF_YEAR) - c.get(Calendar.WEEK_OF_YEAR));

计算当前的时间与3月1日之间的天数,然后除以7再加1就是第几周,下面是计算任意日期之间天数的代码
public int getDayCount(int[] date1, int[] date2){
if(date1.length != 3 || date2.length != 3) return -1;
//判断日期是否异常...
int[] month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayCount = 0;
for(int i = date1[0]; i < date2[0]; i++){
dayCount += 365;
if(isLeapYear(i)) dayCount ++;
}
//计算最后一年的时间
for(int i = 1; i < date2[1]; i++){
dayCount += month[i-1];
if(i == 2 && isLeapYear(date2[0]) dayCount ++;
}
//计算开始的时间
for(int i = 1; i < date1[1]; i++){
dayCount -= month[i-1];
if(i == 2 && isLeapYear(date2[0])) dayCount --;
}
dayCount -= date1[2];
return dayCount;
}
判断闰年的方法如下:
public boolean isLeapYear(int year){
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return true;
return false;
}