|
@@ -56,6 +56,37 @@ func ParseDateAndMonth(dateText string) ([]string, error) {
|
|
return months, nil
|
|
return months, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+func ParseDateAndMonthColzaOil(dateText string) ([]string, error) {
|
|
|
|
+ reportDate, err := time.Parse("2006-01-02", strings.TrimSpace(strings.Split(dateText, " ")[0]))
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, fmt.Errorf("failed to parse report date: %v", err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ months := make([]string, 3)
|
|
|
|
+ monthMap := map[string]string{
|
|
|
|
+ "01": "1月F",
|
|
|
|
+ "02": "2月G",
|
|
|
|
+ "03": "3月H",
|
|
|
|
+ "04": "4月J",
|
|
|
|
+ "05": "5月K",
|
|
|
|
+ "06": "6月M",
|
|
|
|
+ "07": "7月N",
|
|
|
|
+ "08": "8月X",
|
|
|
|
+ "09": "9月X",
|
|
|
|
+ "10": "10月X",
|
|
|
|
+ "11": "11月X",
|
|
|
|
+ "12": "12月Z",
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for i := 0; i < 3; i++ {
|
|
|
|
+ month := reportDate.AddDate(0, i, 0).Format("01")
|
|
|
|
+ months[i] = monthMap[month]
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return months, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
func GetCurrentTime() string {
|
|
func GetCurrentTime() string {
|
|
return time.Now().Format("2006-01-02 15:04:05")
|
|
return time.Now().Format("2006-01-02 15:04:05")
|
|
@@ -72,6 +103,72 @@ func ConvertTimeFormat(dateText string) (string, error) {
|
|
return reportDate.Format("2006-01-02"), nil
|
|
return reportDate.Format("2006-01-02"), nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+func GetWeekdaysInSameWeek(dateStr string) ([]string, error) {
|
|
|
|
+
|
|
|
|
+ t, err := time.Parse("2006-01-02", dateStr)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ weekday := t.Weekday()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ monday := t.AddDate(0, 0, -int(weekday)+1)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var weekdays []string
|
|
|
|
+ for i := 0; i < 5; i++ {
|
|
|
|
+ day := monday.AddDate(0, 0, i)
|
|
|
|
+ weekdays = append(weekdays, fmt.Sprintf("%d月%d日", day.Month(), day.Day()))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return weekdays, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func ConvertToDate(dateText string) (string, error) {
|
|
|
|
+
|
|
|
|
+ currentYear := time.Now().Year()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ parts := strings.Split(dateText, "月")
|
|
|
|
+ if len(parts) != 2 {
|
|
|
|
+ return "", fmt.Errorf("日期格式错误")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ month, err := strconv.Atoi(parts[0])
|
|
|
|
+ if err != nil {
|
|
|
|
+ return "", fmt.Errorf("月份解析错误: %v", err)
|
|
|
|
+ }
|
|
|
|
+ day, err := strconv.Atoi(strings.TrimSuffix(parts[1], "日"))
|
|
|
|
+ if err != nil {
|
|
|
|
+ return "", fmt.Errorf("日期解析错误: %v", err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ date := time.Date(currentYear, time.Month(month), day, 0, 0, 0, 0, time.Local)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return date.Format("2006-01-02"), nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func ConvertTimeFormatToYearMonthDay(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年%d月%d日", shortYear, reportDate.Month(), reportDate.Day()), nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
func ConvertTimeFormatToYearMonth(dateText string) ([]string, error) {
|
|
func ConvertTimeFormatToYearMonth(dateText string) ([]string, error) {
|
|
|
|
|
|
@@ -109,6 +206,32 @@ func GetCurrentYearAndNextYear(dateText string) ([]string, error) {
|
|
return years, nil
|
|
return years, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+func GetNextThreeMonths(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++ {
|
|
|
|
+ year := date.Year() % 100
|
|
|
|
+ month := int(date.Month())
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ result = append(result, fmt.Sprintf("%d年%d月", year, month))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ date = date.AddDate(0, 1, 0)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return result, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
func IsCurrentYear(dateText string) (bool, error) {
|
|
func IsCurrentYear(dateText string) (bool, error) {
|
|
|
|
|