给定月份及周次,如2006年3月的第4周,求该周的第一天及最后一天的日期和星期几。
注:要求每月的1号固定为一周的开始,即使不是星期一;每月的最后一天固定为一周的周末,即使不是星期日。
请给代码!!!

解决方案 »

  1.   

    package test;import java.util.Calendar;class test {
    static void prt(int year,int month,int week){
        Calendar cal  = Calendar.getInstance();
        cal.clear();
        cal.set(Calendar.YEAR,2006);
        cal.set(Calendar.MONTH,month-1);
        cal.set(Calendar.WEEK_OF_MONTH,week);
        int dayWeek = 7;
        System.out.println("month:"+cal.get(Calendar.MONTH));
    if(cal.get(Calendar.MONTH)<(month-1)){
    cal.clear();
    cal.set(Calendar.YEAR,2006);
        cal.set(Calendar.MONTH,month-1);
    dayWeek =  cal.get(Calendar.DAY_OF_WEEK)+1;
    System.out.println("dayWeek:"+dayWeek);
        
    }else{
    cal.set(Calendar.DAY_OF_MONTH,cal.get(Calendar.DAY_OF_MONTH)+1);

    }
    dayWeek --;
        System.out.println("the week first:"+cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DAY_OF_MONTH)+" week"+(cal.get(Calendar.DAY_OF_WEEK)-1));
        
        cal.set(Calendar.DAY_OF_MONTH,cal.get(Calendar.DAY_OF_MONTH)+dayWeek);
    if(week==5){
    cal.set(Calendar.YEAR,2006);
    cal.set(Calendar.MONTH,month);
    cal.set(Calendar.DAY_OF_MONTH,0);
    }
    System.out.println("the week last:"+cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DAY_OF_MONTH)+" week"+(cal.get(Calendar.DAY_OF_WEEK)-1)); }
    public static void main(String []args){
    prt(2006,5,5);
    //week0:Sunday
    }
    }
      

  2.   

    呵呵 我也写了一个
    import java.util.*;public class TestCalendar {
        public static void main(String[] args) {
             Date[] date = getMonSun(2,5);
             for(int i = 0;i< 2; i++) {
                 System.out.println(date[i]);
             }
        }    public static Date[] getMonSun(int mon, int week) {
            Date[] date = new Date[2];
            Calendar ca = Calendar.getInstance();
            //System.out.println(ca.getTime());  
            ca.set(Calendar.MONTH,mon);
            
           // System.out.println(ca.getTime());   
            ca.set(Calendar.WEEK_OF_MONTH,week);
           // System.out.println(ca.getTime());   
            
            int day = ca.get(Calendar.DAY_OF_WEEK);
            ca.add(Calendar.DAY_OF_YEAR, 8 - day);        date[0] = ca.getTime();        ca.add(Calendar.DAY_OF_YEAR, -6);
            date[1] = ca.getTime();
            
            return date;
        }
    }
      

  3.   

    public static Date[] getMonSun(int mon, int week) { }  忘了注释@return Date[]//返回Date数组,第一个是周日,第二个是周一
    @param  mon 月份(注意减1), week 第几周
      

  4.   

    if(week==5)用if(cal.get(Calendar.MONTH)>(month-1))替换。
    不过interpb代码少些。