java.util.Calendar currentCal = java.util.Calendar.getInstance();
//将当前日期改为月的第一天   
currentCal.set(currentCal.DAY_OF_MONTH, 1);
//获得当月第一天的星期值
dayOfWeek = currentCal.get(currentCal.DAY_OF_WEEK);其中currentCal.set(Calendar.DAY_OF_MONTH, 1); //假设 currentCal是 2005-6-23,那么现在的结果就是2005-6-1日
currentCal.get(currentCal.DAY_OF_WEEK);//怎么会返回本月第一天是星期几的呢?哪为高手帮忙解释一下!!

解决方案 »

  1.   

    currentCal.DAY_OF_WEEK是一个static final int型,他只表示一个礼拜有多少天而已。
    呵呵
      

  2.   

    呵呵,用这个可以。
    public class Test {    public static void main(String[] args) {
            java.util.Calendar currentCal = java.util.Calendar.getInstance();
            currentCal.set(currentCal.DAY_OF_MONTH, 1);
            java.util.Date date = currentCal.getTime();
            java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("E");
            System.out.println(format.format(date));
        }}
      

  3.   

    currentCal.get(currentCal.DAY_OF_WEEK);
    currentCal.DAY_OF_WEEK表示你要得到的表示类型(当天在周内的表示方式)然后通过调用currentCal.get获得你所需要的值,并没有什么奇怪的啊。
      

  4.   

    给你这段代码,
    <%=c.get(Calendar.YEAR)%>-<%=c.get(Calendar.MONTH)+1%>-<%=c.get(Calendar.DATE)%>
                        <%
                    switch  (c.get(Calendar.DAY_OF_WEEK)){
                          case 1:
                                out.println("星期天");
                                break;
                          case 2:
                                out.println("星期一");
                                break;
                          case 3:
                                out.println("星期二");
                                break;
                          case 4:
                                out.println("星期三");
                                break;
                          case 5:
                                out.println("星期四");
                                break;
                          case 6:
                                out.println("星期五");
                                break;
                          case 7:
                                out.println("星期六");
                                break;
                          default:
                                break;
                    }
                    %>
      

  5.   

    int getTheFirstWeekDayInAMonth(int year, int month) {
      String[] weekdays = {"日", "一", "二", "三", "四", "五", "六"};
      return "星期" + weekdays[new GregorianCalendar(year, month, 1).get(Calendar.DAY_OF_WEEK) - 1];
    }
      

  6.   

    public static String getCurWeek(Calendar calendar, boolean toChinese) {        String strRet = "";
            int intWeek = 0;
          //  System.out.println("-------calendar.date----------" + calendar.DATE);
           // System.out.println("-------calendar.DayOfWeek-----" + calendar.DAY_OF_WEEK);
           // System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            intWeek = calendar.get(calendar.DAY_OF_WEEK) - 1; //获取本周的第几天
            //外国是星期天为每周第一天,所以减一
           // System.out.println("-----------intWeek----------------" + intWeek);
            calendar = null; //回收
            if (!toChinese) {
                return (String.valueOf(intWeek));
            }        switch (intWeek) {
                case 1:
                    strRet = "星期一";
                    break;
                case 2:
                    strRet = "星期二";
                    break;
                case 3:
                    strRet = "星期三";
                    break;
                case 4:
                    strRet = "星期四";
                    break;
                case 5:
                    strRet = "星期五";
                    break;
                case 6:
                    strRet = "星期六";
                    break;
                case 0:
                    strRet = "星期日";
                    break;
                default:
                    strRet = "不详";
                    break;
            }
            return strRet;
        }
      

  7.   

    public class aboutDate {
      static String[] week = {
          "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
      static String[] month = {
          "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};
      public aboutDate() {
      }
      public static void printDate(String date) {    Calendar currentCal = Calendar.getInstance();
        try {
          currentCal.setTime(new Date(date) );
          String d = currentCal.get(Calendar.YEAR) + "年" +
              month[currentCal.get(Calendar.MONTH )] +
              currentCal.get(Calendar.DATE) + "号" +
              week[currentCal.get(Calendar.DAY_OF_WEEK )];
          System.out.println(d) ;
        }
        catch (Exception ex) { System.out.println(ex) ;}  }
      public static void main(String[] args) throws Exception {    aboutDate aboutDate1 = new aboutDate();
        printDate("2005/09/02");
       }
    }
    output:
      2005年九月2号星期六