本帖最后由 a7740798 于 2011-06-20 15:15:59 编辑

解决方案 »

  1.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar c = Calendar.getInstance();

    c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_WEEK, 1);//本周第一天,以星期日开始
    System.out.println(sdf.format(c.getTime()));
    c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_WEEK, 7);//本周最后一天
    System.out.println(sdf.format(c.getTime()));
    c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_MONTH, 1);//本月第一天
    System.out.println(sdf.format(c.getTime()));

    c = Calendar.getInstance();
    c.add(Calendar.MONTH, 1);//本月最后一天
    c.set(Calendar.DAY_OF_MONTH, 1);
    c.add(Calendar.DAY_OF_MONTH, -1);
    System.out.println(sdf.format(c.getTime())); c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_YEAR, 1);//本年第一天
    System.out.println(sdf.format(c.getTime()));

    c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_YEAR, 1);//本年最后一天
    c.set(Calendar.YEAR, 1);
    c.add(Calendar.DAY_OF_YEAR, -1);
    System.out.println(sdf.format(c.getTime()));
      

  2.   


    +1
    2011年5月第二个星期的第一天 c = Calendar.getInstance();//5月第二周的第一天
    c.set(Calendar.MONTH, Calendar.MAY);
    c.set(Calendar.WEEK_OF_MONTH,2);
    c.set(Calendar.DAY_OF_WEEK,1);
    System.out.println(sdf.format(c.getTime()));更多请参考 JDK API
      

  3.   

    import java.util.*;
    import java.text.*;
    public class Calender {
        public static void main(String args[]){
            System.out.println(getWeekFirstday("2011","6","5"));
        }
        public static String getWeekFirstday(String year,String month,String week){
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            c = Calendar.getInstance();
            c.set(c.YEAR,Integer.parseInt(year));//设置年
            c.set(c.MONTH, Integer.parseInt(month)-1);//设置月
            c.set(c.WEEK_OF_MONTH, Integer.parseInt(week));//设置星期
            c.set(Calendar.DAY_OF_WEEK, 1);//本周第一天,以星期日开始
            return(sdf.format(c.getTime()));
        }}
    参考1楼代码,再看了下Api源文件,现在这个是第一天;
      

  4.   

    注意,最后一天不能只用这个:c.set(Calendar.DAY_OF_WEEK, 7);
    你还要再看下这个是不是到下个月去了,是的话,7-1=6,逐个判断,直到为1或者是在本月。
    现在思路已经很清晰了,例子也足够了。你自己再研究下,就搞定了。
     c.set(c.YEAR,Integer.parseInt(year));//设置年
      c.set(c.MONTH, Integer.parseInt(month)-1);//设置月
      c.set(c.WEEK_OF_MONTH, Integer.parseInt(week));//设置星期
    这三行的c.最好是改成:
    c.set(Calendar.YEAR,Integer.parseInt(year));//设置年
    c.set(Calendar.MONTH, Integer.parseInt(month)-1);//设置月
    c.set(Calendar.WEEK_OF_MONTH, Integer.parseInt(week));//设置星期
      

  5.   

     public static String getFirstDate(int year,int month,int week) {
     Calendar c = Calendar.getInstance();
      c.set(Calendar.YEAR, year);
      c.set(Calendar.MONTH, month-1);
     c.set(Calendar.WEEK_OF_MONTH, week);
     String day2=new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
     System.out.print(day2);
      return day2;
     }