// GetLastYearSamePeriod 根据输入的日期字符串数组,返回去年同期的日期字符串数组
//
// 参数:
// input:输入的日期字符串,格式为"yyyyMMdd",多个日期用逗号分隔
//
// 返回值:
// 第一个返回值是去年同期的日期字符串,多个日期用逗号分隔
// 第二个返回值是错误对象,如果解析日期失败则返回错误
func GetLastYearSamePeriod(input, layout string) (string, error) {
dates := strings.Split(input, ",")
var result []string
for _, dateStr := range dates {
date, err := time.Parse(layout, dateStr)
if err != nil {
return "", err // 返回错误
}
lastYearDate := date.AddDate(-1, 0, 0)
// 处理闰年2月29日情况
if date.Month() == time.February && date.Day() == 29 {
lastYearDate = lastYearDate.AddDate(0, 0, -1)
}
result = append(result, lastYearDate.Format(layout))
}
return strings.Join(result, ","), nil
}
GO根据输入的日期字符串,返回去年同期的日期字符串
最新推荐文章于 2025-04-29 16:33:23 发布