|
@@ -103,6 +103,31 @@ func ConvertTimeFormat(dateText string) (string, error) {
|
|
|
return reportDate.Format("2006-01-02"), nil
|
|
|
}
|
|
|
|
|
|
+// GetNextThreeMonthsNoYear 获取当前月和后两月 不带年份,转换时间格式 dateText 格式为 2024-08-03 --> 8月,9月,10月
|
|
|
+func GetNextThreeMonthsNoYear(dateText string) ([]string, error) {
|
|
|
+ // 解析日期字符串为时间类型
|
|
|
+ date, err := time.Parse("2006-01-02", dateText)
|
|
|
+ if err != nil {
|
|
|
+ return nil, fmt.Errorf("日期解析错误: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 存储结果的切片
|
|
|
+ var result []string
|
|
|
+
|
|
|
+ // 获取本月及后两个月的月份
|
|
|
+ for i := 0; i < 3; i++ {
|
|
|
+ month := int(date.Month())
|
|
|
+
|
|
|
+ // 构建并添加当前年月到结果中
|
|
|
+ result = append(result, fmt.Sprintf("%d月", month))
|
|
|
+
|
|
|
+ // 将日期加一个月
|
|
|
+ date = date.AddDate(0, 1, 0)
|
|
|
+ }
|
|
|
+
|
|
|
+ return result, nil
|
|
|
+}
|
|
|
+
|
|
|
// GetWeekdaysInSameWeek 拿到传入时间本周当前工作日的时间列表,时间格式 dataText 格式为 2024-08-03 --> 8月3日
|
|
|
func GetWeekdaysInSameWeek(dateStr string) ([]string, error) {
|
|
|
// 解析输入日期字符串
|
|
@@ -169,6 +194,20 @@ func ConvertTimeFormatToYearMonthDay(dateText string) (string, error) {
|
|
|
return fmt.Sprintf("%02d年%d月%d日", shortYear, reportDate.Month(), reportDate.Day()), nil
|
|
|
}
|
|
|
|
|
|
+// GetCurrentYear 获取当前年份 转换时间格式 dateText 格式为 2024-08-03 --> 2024年
|
|
|
+func GetCurrentYear(dateText string) (string, error) {
|
|
|
+ // 解析日期
|
|
|
+ reportDate, err := time.Parse("2006-01-02", strings.TrimSpace(dateText))
|
|
|
+ if err != nil {
|
|
|
+ return "", fmt.Errorf("failed to parse report date: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取年份的后两位
|
|
|
+ shortYear := reportDate.Year() % 100
|
|
|
+
|
|
|
+ return fmt.Sprintf("%02d年", shortYear), nil
|
|
|
+}
|
|
|
+
|
|
|
// ConvertTimeFormatToYearMonth 转换时间格式 dateText 返回本月 和 后两月 格式为 2024-08-03 --> 2024年8月,2024-10-03 --> 2024年10月
|
|
|
func ConvertTimeFormatToYearMonth(dateText string) ([]string, error) {
|
|
|
|
|
@@ -187,6 +226,23 @@ func ConvertTimeFormatToYearMonth(dateText string) ([]string, error) {
|
|
|
return months, nil
|
|
|
}
|
|
|
|
|
|
+// GetYearMonthNoYear 获取本月和后两月的年月 2024-08-03 --> 24年8月,24年9月,24年10月
|
|
|
+func GetYearMonthNoYear(dateText string) ([]string, error) {
|
|
|
+ // 解析日期
|
|
|
+ reportDate, err := time.Parse("2006-01-02", strings.TrimSpace(dateText))
|
|
|
+ if err != nil {
|
|
|
+ return nil, fmt.Errorf("failed to parse report date: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ months := make([]string, 3)
|
|
|
+ for i := 0; i < 3; i++ {
|
|
|
+ month := reportDate.AddDate(0, i, 0).Format("06年1月")
|
|
|
+ months[i] = month
|
|
|
+ }
|
|
|
+
|
|
|
+ return months, nil
|
|
|
+}
|
|
|
+
|
|
|
// GetCurrentYearAndNextYear 获取当时所在得年度和明年得年度列表 2024-08-03 --> 2023/24年度, 2024/25年度
|
|
|
func GetCurrentYearAndNextYear(dateText string) ([]string, error) {
|
|
|
// 解析日期
|
|
@@ -206,7 +262,21 @@ func GetCurrentYearAndNextYear(dateText string) ([]string, error) {
|
|
|
return years, nil
|
|
|
}
|
|
|
|
|
|
-// 获取传入时间的本月及后两月的年月 2024-08-03 --> 24年8月
|
|
|
+// ConvertMonthToNumber 时间转换 格式 8月 --> 08
|
|
|
+func ConvertMonthToNumber(dateText string) (string, error) {
|
|
|
+ // 去掉字符串中的 "月"
|
|
|
+ trimmed := strings.TrimSuffix(strings.TrimSpace(dateText), "月")
|
|
|
+
|
|
|
+ // 将月份转换为整数
|
|
|
+ month, err := strconv.Atoi(trimmed)
|
|
|
+ if err != nil {
|
|
|
+ return "", fmt.Errorf("failed to parse month: %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ return fmt.Sprintf("%02d", month), nil
|
|
|
+}
|
|
|
+
|
|
|
+// GetNextThreeMonths 获取传入时间的本月及后两月的年月 2024-08-03 --> 24年8月
|
|
|
func GetNextThreeMonths(dateText string) ([]string, error) {
|
|
|
// 解析日期字符串为时间类型
|
|
|
date, err := time.Parse("2006-01-02", dateText)
|