java.util.Calendar可以知道星期几。

解决方案 »

  1.   

    可以用Calendar 的add()方法试一试!
      

  2.   

    Calendar方法确实可以
    但是我在隔月和隔年的情况就不知道怎么解决
    是否有哪位大侠给一个具体的实例啊?
      

  3.   

    http://www.qq166.com/vip.htm?QQ=855965
      

  4.   

    ok!用oracle写了个函数搞定
    但是还是想知道使用java.util.Calendar怎么来实现这个功能
    另外在java中怎么样能够创建这个oracle函数呢?是否是调用oracle过程的这个方法?
    期待大侠的解答!
      

  5.   

    首先算出这个时间间隔对应的天数n 。
    然后需要知道起始时间是星期几(可以用java.util.Calendar.get(java.util.Calendar.DAY_OF_WEEK )得到),转换为int day(1为星期一,7为星期日) 。
    然后由下面的函数求出非周末的天数
    int calc(int n,int day)
    {
      int m = n / day ;
      int r = n % day ;
      if (day+r < 6)
         return m*5 ;
      if (day+r = 6)  
         return m*5 + 1;
      return m*5 + 2;
    }
      

  6.   

    1。得出两天之间的天数,Calendar.getTime(),相减除以24之类的
    2。上面得出来的天数除以7,然后得出始末两天的星期数,得出中间的周六日的天数
    3。相减
      

  7.   

    上面写错了,改一下:int calc(int n,int day)
    {
      int m = n / 7 ;
      int r = n % 7 ;
      if (day+r < 6)
         return m*5 ;
      if (day+r = 6)  
         return m*5 + 1;
      return m*5 + 2;
    }
      

  8.   

    nwsl(阿甘) 说的和我的一样。
    不过仅仅“天数除以7,然后得出始末两天的星期数,得出中间的周六日的天数”还不够吧,余下来的零头里面也可能有周六日。 见上面的算法
      

  9.   

    谢谢大家
    其实我已经写了一部分,但是却不知道再怎么处理隔月的情况。请大家看看
    public static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2) {
        if (d1.after(d2)) {  // swap dates so that d1 is start and d2 is end
            java.util.Calendar swap = d1;
            d1 = d2;
            d2 = swap;
        }
        int days = d2.get(java.util.Calendar.DAY_OF_YEAR) -
                   d1.get(java.util.Calendar.DAY_OF_YEAR);
        int y2 = d2.get(java.util.Calendar.YEAR);
        if (d1.get(java.util.Calendar.YEAR) != y2) {
            d1 = (java.util.Calendar) d1.clone();
            do {
                days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
                d1.add(java.util.Calendar.YEAR, 1);
            } while (d1.get(java.util.Calendar.YEAR) != y2);
        }
        return days;
    }