用Calendar,     Calendar time = Calendar.getInstance();
     System.out.println(time.get(Calendar.WEEK_OF_YEAR));

解决方案 »

  1.   

    String str = "2003-7-13";                                                   
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");            
    Date date = formatter.parse(str);                                           
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("CTT"));      
    calendar.setTime(date);                                                     
    int weekNo = calendar.get(Calendar.WEEK_OF_YEAR);                           
    int weekIndex = calendar.get(Calendar.DAY_OF_WEEK);//西方是周日为一周的第一天  
    Date dateBegin = new Date();                                                
    Date dateEnd = new Date();                                                  
    dateBegin.setTime(date.getTime()-(long)(weekIndex-1)*24*60*60*1000);        
    dateEnd.setTime(date.getTime()+(long)(7-weekIndex)*24*60*60*1000);          
    System.out.println("第"+weekNo+"周");                                       
    System.out.println("第"+weekIndex+"天");                                    
    System.out.println(formatter.format(dateBegin));                            
    System.out.println(formatter.format(dateEnd));
      

  2.   

    import java.util.Date;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.text.DateFormat;
    public class test {    public static void main(String args[]){
            Date date= new Date();
            Calendar calendar = Calendar.getInstance();
            int week = calendar.get(Calendar.DAY_OF_WEEK)-1;
            Date dateBegin = new Date();
            Date dateEnd = new Date();
            DateFormat shortDateFormat = DateFormat.getDateInstance(0);
            dateBegin.setTime(date.getTime()-(long)(week)*24*60*60*1000);
            String dateBeginStr = shortDateFormat.format(dateBegin);
            String dateEndStr = shortDateFormat.format(dateEnd);
            dateEnd.setTime(date.getTime()+(long)(7-week)*24*60*60*1000);
            System.out.println("今天是当年的第"+calendar.get(Calendar.WEEK_OF_YEAR )+"周");
            System.out.println("今天是当月的"+calendar.get(calendar.DAY_OF_WEEK_IN_MONTH)+"周");
            System.out.println("今天是星期"+week);
            System.out.println("本周的开始时间是"+dateBeginStr);
            System.out.println("本周的结束时间是"+dateEndStr);    }
    }
      

  3.   

    上面的
    String dateEndStr = shortDateFormat.format(dateEnd);
    dateEnd.setTime(date.getTime()+(long)(7-week)*24*60*60*1000);
    换一下位置。
      

  4.   

    import java.util.*;public class Test2 { 
    public static void main(String args[]) throws Exception{
       Calendar calendar = Calendar.getInstance( );      
       calendar.set( Calendar.YEAR, 2003 );
       calendar.set( Calendar.WEEK_OF_YEAR, 20 );
       calendar.set( Calendar.DAY_OF_WEEK, 0 );
       System.out.println( calendar.get( Calendar.MONTH ) );         
       System.out.println( calendar.get( Calendar.DATE ) );                            
    }
    }
    这个是得到第一天的方法,其他的第几天,你只要改动
    calendar.set( Calendar.DAY_OF_WEEK, 0 );
    这一句里面的int值就行了
      

  5.   

    我写过一个javascript的。算法差不多的。
    请看下面。
    if(document.RequestForm.Report_Param_StatisticType.value=="周")
    {
    var theyear = parseInt(document.RequestForm.yearselect.value);//你选择的年份
    var theweek = parseInt(document.RequestForm.timeselect.value);//你选择的第几周
    var yearday =new Date(theyear,0,1);
    var thetime = Date.parse(yearday);
    thetime=thetime+ 24*3600*1000*7*theweek;
    var tempday = new Date(thetime);
    var daytime = 24*3600*1000;
    var weekday = tempday .getDay();
    var theday;
    switch(weekday)
    {
    case 0:theday = new Date(thetime+daytime);
    break;
    case 1:theday = new Date(thetime);
    break;
    default:theday = new Date(thetime+daytime*(8-weekday));
    }
    var beginday = theday;
    var endday = new Date(theday.getYear(),theday.getMonth(),theday.getDate()+6,23,59,59);
    document.RequestForm.Report_Param_StatisticBeginTime.value = dayset(beginday);//这周的开始时间 document.RequestForm.Report_Param_StatisticEndTime.value = dayset(endday); //这周的结束时间
      

  6.   

    To:XKP(低等下人) (括号里的问题)
    calendar.set( Calendar.YEAR, 2003 (是表示2003年吗?));
       calendar.set( Calendar.WEEK_OF_YEAR, 20(是不是表示第21周?) );
       calendar.set( Calendar.DAY_OF_WEEK, 0 );
    System.out.println( calendar.get( Calendar.MONTH +1)(需要加1吗?) );         
       System.out.println( calendar.get(lendar.DATE )+1(需要加吗?);
      

  7.   

    System.out.println( calendar.get(lendar.DATE )+1(需要加吗?);
    不需要加一System.out.println( calendar.get( Calendar.MONTH +1)(需要加1吗?) );   
    需要calendar.set( Calendar.WEEK_OF_YEAR, 20(是不是表示第21周?) );
    不是,就是20calendar.set( Calendar.YEAR, 2003 (是表示2003年吗?));
    是calendar.set( Calendar.DAY_OF_WEEK, 0 );
    这个地方更正一下
    calendar.set( Calendar.DAY_OF_WEEK, 1 );
    才是这个星期的第一天(也就是星期天)
    你说结果都不一致
    那么你试试这个例子
    import java.util.*;public class Test2 { 
    public static void main(String args[]) throws Exception{
       Calendar calendar = Calendar.getInstance( );      
       calendar.set( Calendar.YEAR, 2003 );
       calendar.set( Calendar.WEEK_OF_YEAR, 2 );
       calendar.set( Calendar.DAY_OF_WEEK, 1 );
       System.out.println( calendar.get( Calendar.MONTH ) + 1 );         
       System.out.println( calendar.get( Calendar.DATE ) );                            
    }
    }
    最后应该是1月五号
    也就是今年的一月五号,你可以看看日历·····
      

  8.   

    Calendar calendar = Calendar.getInstance( );已经指的是当前的日期了,以后又calendar.set( Calendar.YEAR, 2003 );
       calendar.set( Calendar.WEEK_OF_YEAR, 2 );都没有用了。打印的始终是当前日期的所在周的每一天的日期。
      

  9.   

    to 楼上的:
    请测试过再说,
    你要觉得set( Calendar.Week_of_year。。
    那些没有用的话,那你试试这个例子
    import java.util.*;public class Test2 { 
    public static void main(String args[]) throws Exception{
       Calendar calendar = Calendar.getInstance( );      
       calendar.set( Calendar.YEAR, 2003 );
       calendar.set( Calendar.WEEK_OF_YEAR, 2 );
       calendar.set( Calendar.DAY_OF_WEEK, 1 );
       System.out.println( calendar.get( Calendar.MONTH ) + 1 );         
       System.out.println( calendar.get( Calendar.DATE ) );                            
    }
    }看看是不是1月5号