如果今天是 2006.02.15
我要求昨天,或者前三天是什么日期可以放出源码吗?

解决方案 »

  1.   

    GregorianCalendar gcal = (GregorianCalendar) GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
            if(flage == 1)
            gcal.set(GregorianCalendar.DAY_OF_MONTH, (gcal.get(GregorianCalendar.DAY_OF_MONTH) - 1));
            String year = String.valueOf(gcal.get(GregorianCalendar.YEAR));
            String month = String.valueOf(gcal.get(GregorianCalendar.MONTH) + 1);
            String day = String.valueOf(gcal.get(GregorianCalendar.DAY_OF_MONTH));
            if(month.length() == 1)
             month = "0" + month;
            if(day.length() == 1)
             day = "0" + day;
            System.out.println("month = " + month);
            System.out.println("day = " + day);
    上面是我的一个程序里的一段代码,你自己参考一下。
      

  2.   

    只需要用Calendar.add()即可。
    import java.util.Calendar;
    import java.util.GregorianCalendar;public class TestCalendar {    /**
         * @param args
         */
        public static void main(String[] args) {
            Calendar cal = GregorianCalendar.getInstance();
            
            System.out.println("month:" + cal.get(Calendar.MONTH) + "date:" + cal.get(Calendar.DATE));
            cal.add(Calendar.DATE, 22);
            System.out.println("month:" + cal.get(Calendar.MONTH) + "date:" + cal.get(Calendar.DATE));
        }}
      

  3.   

    往前算的话,add的第二个参数为负数。
      

  4.   

    我怎样把我的日期 "2006.02.15" 这个 String 代入你的CALENDAR呢
      

  5.   

    还有,我用了你的代码,哪个cal.get(Calendar.MONTH),出来的结果,比实际少了1,就是说,现在是2月,他输出是1,10月,就输出9,这样正常吗?
      

  6.   

    public GregorianCalendar(int year , int month , int dayOfMonth)Calendar today  = new GregorianCalendar(2006,2,15);用这个构造函数可以解决!
    你自己详细看看帮助文档
    可能我写的有问题!
      

  7.   

    DateFormat f = new SimpleDateFormat("yyyy.MM.dd");
    Date d=f.parse("2006.02.15");
    Calendar cal=new Calendar();
    cal.set(d);
    cal.add(Calendar.DATE, -3);
      

  8.   

    回复 丁丁 
    Calendar cal=new Calendar();这句好象行不了
      

  9.   

    还有最后能不能也用回yyyy.MM.dd 固定格式输出?
      

  10.   

    /**
         * 日期加减
         *
         * @param  format y:年运算 m:月运算 d:日运算
         * @param  number 加减天数
         * @param  strYYYYMMDD 被运算日期
         * @return 运算后结果日期
         */
        public static String addDate (String format, int number, String strYYYYMMDD) {
            Calendar cal = null;
            String strDate = "";
            Date date = null;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
            sdf.setLenient(false);
            try {
                cal = Calendar.getInstance();
                cal.clear();
                date = sdf.parse(strYYYYMMDD);
                cal.setTime(date);            if (format.toLowerCase().equals("y") == true) {
                    cal.add(Calendar.YEAR, number);
                } else {
                    if (format.toLowerCase().equals("m") == true) {
                        cal.add(Calendar.MONTH, number);
                        
                    } else {
                        cal.add(Calendar.DATE, number);
                    }
                }
                date = cal.getTime();
                strDate = sdf.format(date);
            }
            catch (Exception e) {
                strDate = "";
            }
            return strDate;
        }没调试,自己试试看。刚好有这么一个。