搞2个calendar,一个是你输入日期这年的1月1日,一个是你输入的日期
然后1月1日循环加1天,一直到和你输入的日期一致
然后循环里碰到周4就加1

解决方案 »

  1.   

    http://zh.wikipedia.org/zh/%E6%98%9F%E6%9C%9F%E7%9A%84%E8%A8%88%E7%AE%97
    维基百科里有算法
      

  2.   


    package org.birdy.httpclient;import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class DateTest {

    public void service(String dateStr){

    int i = 1;

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DAY_OF_YEAR, 1);

    if(cal.get(Calendar.DAY_OF_WEEK)>5){
    /**
     * 一年中的第一天如果是星期五或星期六
     */
    i = 0;
    }

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date theDay = new Date();
    try {
    sdf.parse(dateStr);
    } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    cal.setTime(theDay);
    int temp = cal.get(Calendar.WEEK_OF_YEAR);
    int result = temp + i;

    System.out.println("这天是当年的第" + result + "周。");

    }

    public static void main(String[] args) {

    DateTest test = new DateTest();
    test.service("2015-01-28");

    }

    }看在你头像的面子上
      

  3.   

    必须使用Java8或以上版本的环境运行.    /**
         * 
         * java8 计算当前日期是今年的第几周
         *
         *
         * 对周的定义是:从周四到下周五这样算一周.
         * @author prd. 2015.1.30
         * @param date 格式必须为:yyyy-mm-dd,否则将抛出异常!!!
         * @return
         */
        private static String calculateDate(String date){
            /*
            LocalDate.parse(date).getYear()+"的第" -- 前面的parse就是将String转换为日期,之后获取年.
                    +
                    LocalDate.parse(date).get(WeekFields.of(DayOfWeek.FRIDAY, 7).weekOfYear())+"周.";
                          //-------------------看下面的解析,上面这句就是转换String为日期,然后进行获取                      //---详细解析.                   WeekFields.of(DayOfWeek.FRIDAY, 7)
                       //上面是在设置每周的第一天是周几,这里是设置周五,后面的参数是每周最少几天
                       .weekOfYear()
                       //这一句就是获取这一周在当前年是多少周        */
            return LocalDate.parse(date).getYear()+"的第"
                    +LocalDate.parse(date).get(WeekFields.of(DayOfWeek.FRIDAY, 7).weekOfYear())+"周.";
        }
        public static void main(String[] args) {
            System.out.println(calculateDate("2015-01-08"));    }
    可以使用了,看英文文档,看了半晚上错过了一个重要的地方,还好后来找到了.帮你回答问题也让我成长了.