有一个方法public void a(int i)i的值是1-7之间分别表示星期一到星期日,方法体实现的是求出当前是星期几我是这么实现的Calendar.getInstance().WEDNESDAY得到的是一个整型如今天是4,I的值是6通过这些条件,我应该怎么得到星期六的年月日时间。谢谢了大家了

解决方案 »

  1.   

    public void a(int i){
           Calendar c = Calendar.getInstance();
           int day_of_week = c.get(Calendar.DAY_OF_WEEK);
           c.add(Calendar.DATE,i-day_of_week);
           int year = c.get(Calendar.YEAR);
           int month = c.get(Calendar.MONTH) + 1;
           int date = c.get(Calendar.DATE);
    }
      

  2.   

      /**
         * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
         *
         * @param sdate
         * @param num
         * @return
         */
        public static String getWeek(String sdate, String num) {
            // 再转换为时间
            Date dd = DateFormats.strToDate(sdate);
            Calendar c = Calendar.getInstance();
            c.setTime(dd);
            if (num.equals("1")) // 返回星期一所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
            else if (num.equals("2")) // 返回星期二所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
            else if (num.equals("3")) // 返回星期三所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
            else if (num.equals("4")) // 返回星期四所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
            else if (num.equals("5")) // 返回星期五所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
            else if (num.equals("6")) // 返回星期六所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
            else if (num.equals("0")) // 返回星期日所在的日期
                c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
            return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
        }
    http://javaprogram.5d6d.com/blog.php?tid=322
      

  3.   

    我怎么看不懂楼主在说什么呢?
    你要得到星期六是几号?
                Calendar ca = Calendar.getInstance();
                ca.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
                System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(ca.getTime()));
      

  4.   

    public class Test {    public static void main(String[] args) {        
            Date date = getDate(Week.SUNDAY);
            System.out.printf("%tF%n", date);
        }
        
        private static Date getDate(Week week) {
            Calendar calendar = Calendar.getInstance();
            calendar.setFirstDayOfWeek(Week.MONDAY.getWeek());
            calendar.set(Calendar.DAY_OF_WEEK, week.getWeek());
            return calendar.getTime();
        }
    }class Week {    
        private static int num = 1;    
        private int week = num++;
        
        private Week(){}
        
        public int getWeek() {
            return week;
        }
        
        public static Week SUNDAY = new Week();
        public static Week MONDAY = new Week();
        public static Week TUESDAY = new Week();
        public static Week WEDNESDAY = new Week();
        public static Week THURSDAY = new Week();
        public static Week FRIDAY = new Week();
        public static Week SATURDAY = new Week();
    }
      

  5.   

    public void getWeekDay(int i)
      {
        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        i = i+1;
        if(i >= 8)
        {
          i = i-7;
        }
        cal.set(Calendar.DAY_OF_WEEK, i);
      }
      

  6.   

    对一楼方法的改进public static void a(int i){
    i+=1; //因为在JAVA中每周是从周日开始的,即周日是1,周一2
    if(i>7)
    i-=7;
    Calendar c = Calendar.getInstance();
    int day_of_week=c.get(Calendar.DAY_OF_WEEK);
    c.add(Calendar.DAY_OF_WEEK,i-day_of_week);
    int year=c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH)+1;
    int day= c.get(Calendar.DAY_OF_MONTH);
    System.out.println("year "+year+" month "+month+" day "+day);
    }