java - 从 Java 日期/日历获取上季度最后日期

标签 java date calendar

我想从 Java Date/Calender 类中获取最后一个季度的最后日期。

例如:

If current date = 3rd Oct

Lat Quater Last Date : 30th Sept. 

我可以使用 date.getMonth() 方法获得相同的结果,但由于这些方法已被废弃,想知道是否有更好的方法来实现相同的效果。

最佳答案

对于日期操作,您应该使用日历。这可能不是最有效的方法,但它可以解决您的问题:

public Date calculateLastDayOfLastQuarter(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);

    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
    int year = calendar.get(Calendar.YEAR);

    try {
        switch (calendar.get(Calendar.MONTH)) {
        case Calendar.JANUARY:
        case Calendar.FEBRUARY:
        case Calendar.MARCH:
            return sdf.parse("31.12." + (year - 1));
        case Calendar.APRIL:
        case Calendar.MAY:
        case Calendar.JUNE:
            return sdf.parse("31.03." + year);
        case Calendar.JULY:
        case Calendar.AUGUST:
        case Calendar.SEPTEMBER:
            return sdf.parse("30.06." + year);
        case Calendar.OCTOBER:
        case Calendar.NOVEMBER:
        case Calendar.DECEMBER:
            return sdf.parse("30.09." + year);
        default:
            return null;
        }
    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }
}

关于java - 从 Java 日期/日历获取上季度最后日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19175164/

相关文章:

java - 有没有自动格式化XML的Swing组件?

java - 使用 DFS 和 java 寻路

c# - 有没有办法找出DateTime变量对应的日历?

PHP 日期和时间函数不会存储在数据库中

sql - Hive 查询在生成缺失日期时遇到问题

java - 使用 Calendar.MINUTE add 方法向 Calendar 对象添加秒数

java - 使用 MinMax 和 Alpha-Beta 修剪找到最佳着法

java - 无法理解日期解析

php - 为数据对象集合选择数据结构

validation - Rails 3 中的日期验证