函数要求判断 当前系统时间是否超过18:00 ,比如今天是5月18日, 如果当前时间为 5月18日 18:13分 则返回时间字符串 090518,如果当前日期是17:55 则返回 090517,另外如果今天是周6 周日 以及周一的18:00之前,都返回上个周5的日期,假如今天是2009年5月25日中午12:00 则返回 090522 (即上周5的日期)谢谢!

解决方案 »

  1.   

    public static void main(String[] args) throws ParseException {
        Calendar c = Calendar.getInstance();
        c.setTime(new SimpleDateFormat("yyyyMMdd-HH").parse("20090515-19"));    // 如果小于 18 点则往回退
        if (c.get(Calendar.HOUR_OF_DAY) < 18) {
            c.add(Calendar.DAY_OF_MONTH, -1);
        }    // 如果是周末则往回退
        if (c.get(Calendar.DAY_OF_WEEK) == 1) {         // 星期日
            c.add(Calendar.DATE, -2);
        } else if (c.get(Calendar.DAY_OF_WEEK) == 7) {  // 星期六
            c.add(Calendar.DATE, -1);
        }    System.out.println(new SimpleDateFormat("yyyyMMdd").format(c.getTime()));
    }
      

  2.   

    给你简单的写了一个,第2个功能差不多的,多一步判断而已,自己加点吧。
    import java.util.*;
    import java.text.*;public class FormatDate {
    public static void formatDate(Date date){
    GregorianCalendar calendar = new GregorianCalendar(Locale.CHINA);

    calendar.setTime(date);

    if(calendar.get(Calendar.HOUR) < 18)
    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)-1);


    SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");

    System.out.println(dateFormat.format(calendar.getTime()));
    }

    public static void main(String args[]){
    Date currentDate = new Date();

    formatDate(currentDate);
    }
    }
      

  3.   


    public static void main(String args[]) throws ParseException{
    Calendar cal = Calendar.getInstance();
    //測試用 自定義日期﹑小時--使用時取消
    cal.setTime(new SimpleDateFormat("yyyyMMdd-HH").parse("20090518-11"));
    //周6
    if((cal.get(Calendar.DAY_OF_WEEK)==7)){
    cal.add(Calendar.DAY_OF_MONTH,-1);
    System.out.println(new SimpleDateFormat("yyMMdd").format(cal.getTime()));
    }
    //周7
    else if((cal.get(Calendar.DAY_OF_WEEK)==1)){
    cal.add(Calendar.DAY_OF_MONTH,-2);
    System.out.println(new SimpleDateFormat("yyMMdd").format(cal.getTime()));
    }
    //周1 18點前
    else if((cal.get(Calendar.DAY_OF_WEEK)==2)&&cal.getTime().getHours()<18){
    System.out.println(Calendar.HOUR_OF_DAY);
    cal.add(Calendar.DAY_OF_MONTH,-3);
    System.out.println(new SimpleDateFormat("yyMMdd").format(cal.getTime()));
    }
    //周2-周5  18點前
    else if (cal.getTime().getHours()<18) {
    cal.add(Calendar.DAY_OF_MONTH, -1);
    System.out.println(new SimpleDateFormat("yyMMdd").format(cal.getTime()));
        }
    //周1-周5  18點后
    else{
    System.out.println(new SimpleDateFormat("yyMMdd").format(cal.getTime()));
        }
    }