日期:2014-05-20  浏览次数:20630 次

判断周六、周日的奇怪现象,附源码
我这段代码是要返回是否是周六、周日的代码,运行没有问题,但是判断的不对呢,4月1日命名是周日,但是返回来的值是周一!!为什么呢!!
package   compara_time;
import   java.text.*;
import   java.util.Date;
import   java.util.Calendar;
//import   java.util.Set;
/**
  *   <p> Title:   </p>
  *   <p> Description:   </p>
  *   <p> Copyright:   Copyright   (c)   2007 </p>
  *   <p> Company:   </p>
  *   @author   not   attributable
  *   @version   1.0
  */

public   class   Compara_Time   {
    private   String   v_btime;
    private   String   v_etime;
    public   Compara_Time()   {
    }
    public   void   setTime(String   a,String   b){//初始化时间
      v_btime=a;
      v_etime=b;
    }
    public   String   Compara_Result(String   begin,String   end)   throws   Exception{
        String   result= "0 ";
        SimpleDateFormat   bartDateFormat   =   new   SimpleDateFormat( "yyyy-MM-dd   HH:mm:ss ");
        String   beginTime=begin;   //指定一个字符串
        String   endTime=end;   //指定一个字符串
        String   begin_work= " ";
        String   end_work= " ";
        int   day=0;
        int   day1=0;
        //取日期是否是周末
        Calendar   ca   =   Calendar.getInstance();
        SimpleDateFormat       df   =   new   SimpleDateFormat( "yyyy-mm-dd ");
    try{
        System.out.print(beginTime+ "beginTime ");
        if   (   beginTime.equals( " ")   ||   beginTime==null){
              result   = "00 ";
        }
        else{
              Date       dt1=   df.parse(beginTime);
              ca.setTime(dt1);
              day     =   ca.get(ca.DAY_OF_WEEK);
              System.out.print(day+ "day ");
              if(day   ==   ca.SUNDAY   ||   day   ==   ca.SATURDAY){           //周六周日
                    result   =   "100 ";
              }
              else{
                  begin_work   =   beginTime.substring(0,   11)   +   v_btime;// "8:40:00 ";//时间在8:40前
                  if   (bartDateFormat.parse(begin_work).getTime()   > =
                          bartDateFormat.parse(beginTime).getTime())   {