日期:2014-05-18  浏览次数:20686 次

在java里怎么取离当前日期最近的一个星期天??
知道getNowDate是取当前日期
getDay可以返回日期是星期几,但是怎么取离当前日期最近的一个星期天呢?

------解决方案--------------------
Java code

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TestDate {

    public static void main(String[] args) {

        // 设置当前日期
        Calendar aCalendar = Calendar.getInstance();
        aCalendar.setTime(new Date());

        // 取当前日期是星期几(week:星期几)
        int week = aCalendar.get(Calendar.DAY_OF_WEEK);
        if (week == 1) {
            week = 7;
        } else if (week == 0) {
            week = 6;
        } else {
            week -= 1;
        }

        // 取距离当前日期最近的周日与当前日期相差的天数(count:相差的天数。正数:之后的周日,负数:之前的周日)
        int count = 0;
        if (week <= 3) {
            count = -week;
        } else if (week >= 4) {
            count = 7 - week;
        }

        // 获取距离当前日期最近的周日日期
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd EE");
        Calendar c = Calendar.getInstance();
        c.add(Calendar.DAY_OF_WEEK, count);

        // 格式化并打印出距离当前日期最近的周日日期
        System.out.println("当前日期: " + df.format(aCalendar.getTime()) + '\n' + "最近周日: " + df.format(c.getTime()));
    }
}