2006-7-12 至 2006-7-25
期间是否含有星期六日

解决方案 »

  1.   

    public boolean compareDate(GregorianCalendar calendar1,GregorianCalendar calendar2){
    boolean flag = true;

    int day = (int) ((calendar2.getTimeInMillis()-calendar1.getTimeInMillis())/(1000*60*60*24)+1);
    if( day < 6){

    for(int i =0;i<day;i++){
    calendar1.add(GregorianCalendar.DATE,1);
    if(4 == calendar1.get(GregorianCalendar.DAY_OF_WEEK) || 5 == calendar1.get(GregorianCalendar.DAY_OF_WEEK)){
    flag =  false;
    break;
    }
    }
    }
    else{
    flag =  false;
    }

    return flag;

    }
      

  2.   

    有必要判断开始日期和结束日期中的天数是大于6还是小于6吗?因为判断出来的结果不管是>6 还是 <6 循环总是不可避免的,极端一点就算开始日期是星期一,那么循环次数最多出不会超过6次就可以退出循环了。
      

  3.   

    哦,kingdoom(坚持)的    意思是大于6 就不循环了,恩,刚才想错了。
      

  4.   

    public static boolean compareDate(String sBeginDate, String sEndDate)
    {
    Date srcBeginDate = null;
    Date srcEndDate = null;
    int srcBDate = 0;
    int srcEDate = 0;
    int srcBDateInWeek = 0;
    int srcEDateInWeek = 0;
    int dateSpan = 0;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    try
    {
    srcBeginDate = sdf.parse(sBeginDate);
    srcEndDate = sdf.parse(sEndDate);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(srcBeginDate);
    srcBDate = calendar.get(Calendar.DAY_OF_YEAR);
    srcBDateInWeek = calendar.get(Calendar.DAY_OF_WEEK);
    calendar.setTime(srcEndDate);
    srcEDate = calendar.get(Calendar.DAY_OF_YEAR);
    srcEDateInWeek = calendar.get(Calendar.DAY_OF_WEEK);
    dateSpan = srcEDate - srcBDate + 1;

    if(srcBDateInWeek==1||srcBDateInWeek==7||srcEDateInWeek==1||srcEDateInWeek==7)
    {
    return true;
    }
    else
    {
    return (Math.abs(dateSpan)>(7-srcBDateInWeek));
    }
    }
      

  5.   

    我们用java来解决实际问题。java技术交流,讨论java的技术细节和最新技术。欢迎中高级程序员以及渴望学习java技术的初学者加入讨论。QQ群:3001581