从当前日期算起,获取几天前的日期和几个月前的日期
/** * 从当前日期算起,获取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; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)