int 天数 = 2004-07-21 - 2004-07-01
int 星期N = 星期(2004-07-01)int 第几周= ((天数-(7+1-星期))%7)==0?(天数-(7+1-星期))/7+1:(天数-(7+1-星期))/7+2

解决方案 »

  1.   

    yaray的方法不行,如果跨年呢?
      

  2.   

    先把日期转换为数字形式,变形那种unix式的时间,然后再两个数据相减先得到第一日期的星期几
    然后看看两个数据相减的数据除以/7/3600
    得到多少周的数据再根据余数据,得到当前为星期几。应该ok了向各位学习一下,刚才的思路不是java的,是php与js的方法。可以参考。
      

  3.   


    import java.util.Date;
    public class TestDate {
      public TestDate() {
      }
      public static void main(String[] args) {
       Date start = new Date(2004,1,1);
       Date end = new Date(2004,1,28);
       System.out.println("The weed no.:");
       System.out.println(((end.getTime()-start.getTime())/(3600*24*1000))/7+1);
      }
    }
      

  4.   

    JDK里有直接可用的类,用法:Calendar cal = GregorianCalendar.getInstance();
    // cal.setTime((new SimpleDateFormat("yyyy-MM-dd")).parse("2004-7-20")); // 也可以设置你要的日期
    int weekOfMonth = cal.get(Calendar.WEEK_OF_YEAR);
      

  5.   

    To: shine333(enihs)为什么呐,如果是一学期的话,我感觉这样算没问题啊.是不是周日算做下一周了.
      

  6.   

    To: zhou1977(短笛)
    int 天数 = 2004-07-21 - 2004-07-01
    int 星期N = 星期(2004-07-01)
    int 第几周= ((天数-(7+1-星期))%7)==0?(天数-(7+1-星期))/7+1:(天数-(7+1-星期))/7+2不知最后这个公式有没有写错,结果总是有点偏差。
      

  7.   

    比如说2004-07-01开始,求2004-07-12为第几周(答案应该是3)
    int 天数 = 2004-07-02 - 2004-07-01 = 11
    int 星期N = 星期(2004-07-01)= 4
    int 第几周= ((天数-(7+1-星期))%7)==0?(天数-(7+1-星期))/7+1:(天数-(7+1-星期))/7+2
              其中((11-(7+1-4))%7)=0,所以结果是(11-(7+1-4))/7+1=2
      

  8.   

    这里好象有比较详细的介绍
    www.yultao.tk
      

  9.   

    To: Alexxxxxx() 
    你这是在做广告吧!!各位高手,出出力,让这个问题有个完美的解决方案。
    急!