原帖如下http://topic.csdn.net/u/20090518/23/3718ab34-2fd2-4363-9775-12b468c52ccb.html现在需要进一步获得 当前日期的前4天 (共5天的 日期)返回结果为,数组也行或者用某个固定间隔符号隔开的字符串也可以比如今天是5月29日 18:05 则返回 090529,090528,090527,092526,090525但如果 今天是 5月29日上午 11点 则返回 090528,090527,092526,090522 (需跨越周6 周日)

解决方案 »

  1.   


    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class Test { public static void main(String[] args) 
    {
    String[] testStr = getDays1(new Date(), 4, "yyMMdd");

    for(int i=0; i<testStr.length; i++)
    {
    System.out.println(testStr[i]);
    }

    }

    public static String[] getDays1(Date day, int preDays, String format)
    {
    String[] returnValue = new String[preDays];

    SimpleDateFormat sdf = new SimpleDateFormat(format);
    Calendar c = Calendar.getInstance();
    c.setTime(day);

    for(int i=0; i<preDays; i++)
    {
    c.add(Calendar.DAY_OF_YEAR, -1);

    while(c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY || c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)
    {
    c.add(Calendar.DAY_OF_YEAR, -1);
    }

    returnValue[i] = new String(sdf.format(c.getTime()));
    }

    return returnValue;
    }}
    楼主给分
      

  2.   

     哇噻
    BMW很迅速啊
    呵呵
    其实这个并不难用Calendar累就可以搞定了
    LZ应该自己试着来来
    LS的代码不完全正确,LZ还需要修改一下,想必应该可以应付了
      

  3.   


    public static String[] getDay(int stepDay) {
            DateFormat dfObj = new SimpleDateFormat("yyMMdd");
            StringBuffer sbuf = new StringBuffer();
            Calendar calenObj = Calendar.getInstance();
            if (calenObj.get(Calendar.AM_PM) == Calendar.AM) {
                stepDay = stepDay - 1;
                sbuf.append(dfObj.format(calenObj.getTime())).append(",");
            }
            for (int i = 0; i < stepDay; i++) {
                calenObj.add(Calendar.DAY_OF_MONTH, -1);
                while (calenObj.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY 
                        || calenObj.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
                    calenObj.add(Calendar.DAY_OF_MONTH, -1);
                }
                sbuf.append(dfObj.format(calenObj.getTime())).append(",");
            }
            System.out.println(sbuf.toString());
            return (sbuf.toString().split(","));
        }
      

  4.   

    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;public class Test {
    public static void main(String[] args) {
    Calendar c = Calendar.getInstance();
    c.setTime(new Date());
    List<String> dateList = new ArrayList<String>();
    while(dateList.size() < 4) {
    c.add(Calendar.DAY_OF_MONTH, -1);
    if(c.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && c.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {
    dateList.add("" + c.get(Calendar.YEAR) + (c.get(Calendar.MONTH) + 1) + c.get(Calendar.DAY_OF_MONTH));
    }
    }
    }
    }