GO根据输入的日期字符串,返回去年同期的日期字符串


// 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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值