随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

从当前日期算起,获取几天前的日期和几个月前的日期

/**
 * 从当前日期算起,获取N天前的日期(当前日不算在内),日期格式为yyyy-MM-dd
 *
 * @param daily 天数
 * @return
 */
public static String getDateByDay(Integer daily) {
    Date date = new Date();
    int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
    int month = Integer.parseInt(new SimpleDateFormat("MM").format(date));
    int day = Integer.parseInt(new SimpleDateFormat("dd").format(date)) - daily;
    if (day < 1) {
        month -= 1;
        if (month == 0) {
            year -= 1;
            month = 12;
        }
        if (month == 4 || month == 6 || month == 9 || month == 11) {
            day = 30 + day;
        } else if (month == 1 || month == 3 || month == 5 || month == 7
                || month == 8 || month == 10 || month == 12) {
            day = 31 + day;
        } else if (month == 2) {
            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
                day = 29 + day;
            }
            else {
                day = 28 + day;
            }
        }
 
    }
    String y = year + "";
    String m = "";
    String d = "";
    if (month < 10) {
        m = "0" + month;
    } else {
        m = month + "";
    }
    if (day < 10) {
        d = "0" + day;
    } else {
        d = day + "";
    }
    return y + "-" + m + "-" + d;
}
 
/**
 * 从当前日期算起,获取N个月前的日期,日期格式为yyyy-MM-dd
 *
 * @param mon 月份
 * @return
 */
public static String getDateByMonth(Integer mon) {
    Date date = new Date();
    int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
    int month = Integer.parseInt(new SimpleDateFormat("MM").format(date)) - mon;
    int day = Integer.parseInt(new SimpleDateFormat("dd").format(date));
    if (month == 0) {
        year -= 1;
        month = 12;
    } else if (day > 28) {
        if (month == 2) {
            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
                day = 29;
            } else {
                day = 28;
            }
        } else if ((month == 4 || month == 6 || month == 9 || month == 11)
                && day == 31) {
            day = 30;
        }
    }
    String y = year + "";
    String m = "";
    String d = "";
    if (month < 10) {
        m = "00" + month;
    } else {
        m = month + "";
    }
    if (day < 10) {
        d = "0" + day;
    } else {
        d = day + "";
    }
    return y + "-" + m + "-" + d;
}

 

posted on   Ruthless  阅读(4205)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2011年12月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示