请问一下。我想的做法是先取到当前机器日期时间是星期几,用Calendar.getInstance().get(Calendar.DAY_OF_WEEK);在看所传日期和当前机器日期相差的time millis,算出相差天数。然后再计算。可是太麻烦,而且要求数学性要很强,不知道jdk下有没有很直接的方法,或者有什么直接的方法,想想,谢谢!

解决方案 »

  1.   

    你是要知道,当前给定时间所在周的周一吗?我认为有下述几种情况:1> 比如2004年2月1日.如果是星期二要到1月2> 2004年12月31日 如果是星期日要到2005年3> 2004 年1月1日 如果是星期4要到2003年取得日期对应哪周,然后减或加响应的天数,到周一.这是我的思路.
      

  2.   

    Calendar有一个方法getFirstDayOfWeek()
      

  3.   

    回天平:Calendar有一个方法getFirstDayOfWeek()。
    首先要知道Calendar给拿到实例。Calendar.getInstance()。该拿实例里面参数不适合。默认拿是拿机器日期,而不是我传的日期。因此好像不行。回jackkui(阿黄):
    你说的取得日期对应哪周如何实现?呵呵,还有知道拿周了,如何知道那周的周一是哪一天?呵呵,有待研究。
      

  4.   

    其实你只要得到aTmsp_startDate是星期几,再从aTmsp_startDate里减去(几-2)天,就是星期一了。
    Calendar c = Calendar.getInstance();
    c.setDate(aTmsp_startDate);
    int day = c.get(Calendar.DAY_OF_WEEK);
    long time = c.getTimeInMillis();
    time = time - (day - 2)*24*60*60*1000; 
    TimeStamp ts = new TimeStamp(time);
      

  5.   

    import java.util.Date;
    import java.sql.Timestamp;
    import java.util.Calendar;public class GetMonday{
    public static void getMonday(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    int day = c.get(Calendar.DAY_OF_WEEK);
    long time = c.getTimeInMillis();
    time = time - (day - 2)*24*60*60*1000; 
    Timestamp ts = new Timestamp(time);
    System.out.println(ts.toString());
    }

    public static void main(String[] args){
    getMonday(new Date());
    }
    }这是运行通过的。因为没有连数据库,就用Date对象代替Timestamp对象了,反正timestamp是Date的子类,这个方法是可行的