如何根据当前日期取得当前周的周一和周日,谢谢啦

解决方案 »

  1.   

    Calendar cal = new GregorianCalendar();
    int curDay = cal.get(Calendar.DAY_OF_WEEK);
    //因为DAY_OF_WEEK==1是周日,以下不正确.好象要弄个判断来写的,自己动手吧:)
    Calendar monday = cal.add(0-curDay , Calendar.DATE);
    Calendar sunday= cal.add(7-curDay , Calendar.DATE);
      

  2.   

    //我给你写了个通用的,随便输入日期都可以
    //如果不想用GregorianCalendar,改为Calendar也类似import java.util.GregorianCalendar;
    import java.util.Calendar;
    class Test 
    {
        int monday;
        int sunday;
        
        GregorianCalendar gc ;
        Test( int year ,int month,int day)
        {
            gc = new GregorianCalendar(year,month-1,day);///month-1,因为这里1是代表2月,2代表3月。
        }
        void getMyDay()
        {
            String []day = new String[]{"天","一","二","三","四","五","六"};
            int today = gc.get(Calendar.DAY_OF_WEEK);//代表今天是星期几,周日---周六 返回 1---7
            System.out.println("今天是星期" +day[today-1]);//这地方变为汉字
            gc.add(Calendar.DATE,-today+2);//本来是-today+1 获得本周第一天---周日的,要获得周一,只有+2了
            System.out.println("这个星期的周一为 :" + gc.get(Calendar.DATE));//现在日期已经是本周第二天---周一了
            gc.add(Calendar.DATE,5);////从星期一变到到星期六,所以加上5天
            System.out.println("这个星期的周六为 :" + gc.get(Calendar.DATE));
        }
    }
    class GetMonday
    {
        public static void main(String[] args) 
        {
            Test t = new Test(2006,11,22);//随便一天都可以,瞎改都不要紧,系统会自己算,
            //例如22号改为32号,日期将变为12月2号
            t.getMyDay();
        }
    }
      

  3.   

    这样可以了吧?
    楼主实在也太懒了吧?上面我给的参数次序给反了,汗一个!
    ================================
    Calendar cal = null;
    Calendar  monday=null,sunday=null; 
    ......
    int curDay = cal.get(Calendar.DAY_OF_WEEK);
    if(curDay==1){
          sunday = cal;
          monday = cal.add(Calendar.DATE,-6);
    }
    else{
          sunday = cal.add(Calendar.DATE,7-curDay);
          monday = cal.add(Calendar.DATE,1-curDay);
    }
      

  4.   

    /**
     * 得到本周第一天和最后一天的日期
     * @return
     */
    public static String[] getDateOfThisWeek(){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

    Calendar   cal   =   Calendar.getInstance();

    int index = cal.get(Calendar.DAY_OF_WEEK);  //今天是本周的第几天 //转成中国的习惯,如果是第一天,则转化为第七天(星期天外国为一周的第一天,而中国为每周的最后一天) if(index==1)
    index = 8; cal.add(Calendar.DATE,-(index-2));

    String start = (sdf.format(cal.getTime()));

    cal.add(Calendar.DATE,6);
    String end = (sdf.format(cal.getTime()));

    String[] result = new String[]{start,end};
    return result;
    }
      

  5.   

    public static String[] getDateOfThisWeek(){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

    Calendar   cal   =   Calendar.getInstance();

    int index = cal.get(Calendar.DAY_OF_WEEK);  //今天是本周的第几天 //转成中国的习惯,如果是第一天,则转化为第七天(星期天外国为一周的第一天,而中国为每周的最后一天) if(index==1)
    index = 8; cal.add(Calendar.DATE,-(index-2));

    String start = (sdf.format(cal.getTime()));

    cal.add(Calendar.DATE,6);
    String end = (sdf.format(cal.getTime()));

    String[] result = new String[]{start,end};
    return result;
    }
      

  6.   

    后来发现我只需要取周一就可以了,偶的程序
        public String getMonday(){
            Calendar cal = new GregorianCalendar();
            Date date = new Date();
            int curDay = cal.get(Calendar.DAY_OF_WEEK);
            cal.setTime(date);
            if(curDay==1){
                cal.add(GregorianCalendar.DATE, -6); //每周第一天
            }else{
                cal.add(GregorianCalendar.DATE, 2 - curDay); //每周第一天
            }
            Date lastWeekDate = cal.getTime(); //
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            datetime = sdf.format(lastWeekDate);
            return datetime;
        }