Author: Adam Evyčędo <git@apiote.xyz>
use predefined date formats
traffic/convert.go | 30 +++++++++++++++--------------- traffic/feeds.go | 8 ++++---- traffic/structs.go | 3 ++-
diff --git a/traffic/convert.go b/traffic/convert.go index dc2b446b5149f1dc18fc0e1a59b63f76e20823f9..45b4e5d9a9f63c7c8b082331668ec28db1b3eccb 100644 --- a/traffic/convert.go +++ b/traffic/convert.go @@ -405,22 +405,22 @@ schedule.DateRanges[0].Weekdays |= (1 << 7) } c.schedules[schedule.Id] = schedule - scheduleStart, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].Start, c.Timezone) + scheduleStart, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].Start, c.Timezone) if err != nil { c.ValidFromError = append(c.ValidFromError, err) } if err == nil && (c.ValidFrom.IsZero() || scheduleStart.Before(c.ValidFrom)) { c.ValidFrom = scheduleStart - c.feedInfo.ValidSince = scheduleStart.Format("20060102") + c.feedInfo.ValidSince = scheduleStart.Format(ValidityFormat) } - scheduleEnd, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].End, c.Timezone) + scheduleEnd, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].End, c.Timezone) if err != nil { c.ValidTillError = append(c.ValidTillError, err) } if err == nil && (c.ValidTill.IsZero() || scheduleEnd.After(c.ValidTill)) { c.ValidTill = scheduleEnd - c.feedInfo.ValidTill = scheduleEnd.Format("20060102") + c.feedInfo.ValidTill = scheduleEnd.Format(ValidityFormat) } } return c, nil @@ -483,22 +483,22 @@ } c.schedules[schedule.Id] = schedule - scheduleStart, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].Start, c.Timezone) + scheduleStart, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].Start, c.Timezone) if err != nil { c.ValidFromError = append(c.ValidFromError, err) } if err == nil && (c.ValidFrom.IsZero() || scheduleStart.Before(c.ValidFrom)) { c.ValidFrom = scheduleStart - c.feedInfo.ValidSince = scheduleStart.Format("20060102") + c.feedInfo.ValidSince = scheduleStart.Format(ValidityFormat) } - scheduleEnd, err := time.ParseInLocation("2006-01-02", schedule.DateRanges[0].End, c.Timezone) + scheduleEnd, err := time.ParseInLocation(DateFormat, schedule.DateRanges[0].End, c.Timezone) if err != nil { c.ValidTillError = append(c.ValidTillError, err) } if err == nil && (c.ValidTill.IsZero() || scheduleEnd.After(c.ValidTill)) { c.ValidTill = scheduleEnd - c.feedInfo.ValidTill = scheduleEnd.Format("20060102") + c.feedInfo.ValidTill = scheduleEnd.Format(ValidityFormat) } } else { date := record[fields["date"]] @@ -510,8 +510,8 @@ for i := 0; i < len(scheduleToEdit.DateRanges); i++ { dateRange := scheduleToEdit.DateRanges[i] if dateRange.Start == formatedDate { - d, _ := time.ParseInLocation("2006-01-02", dateRange.Start, c.Timezone) - dateRange.Start = d.AddDate(0, 0, 1).Format("2006-01-02") + d, _ := time.ParseInLocation(DateFormat, dateRange.Start, c.Timezone) + dateRange.Start = d.AddDate(0, 0, 1).Format(DateFormat) if dateRange.Start <= dateRange.End { newDateRanges = append(newDateRanges, dateRange) } @@ -519,17 +519,17 @@ continue } if dateRange.Start < formatedDate && formatedDate < dateRange.End { - d, _ := time.ParseInLocation("2006-01-02", formatedDate, c.Timezone) - range1 := DateRange{dateRange.Start, d.AddDate(0, 0, -1).Format("2006-01-02"), dateRange.Weekdays} - range2 := DateRange{d.AddDate(0, 0, 1).Format("2006-01-02"), dateRange.End, dateRange.Weekdays} + d, _ := time.ParseInLocation(DateFormat, formatedDate, c.Timezone) + range1 := DateRange{dateRange.Start, d.AddDate(0, 0, -1).Format(DateFormat), dateRange.Weekdays} + range2 := DateRange{d.AddDate(0, 0, 1).Format(DateFormat), dateRange.End, dateRange.Weekdays} newDateRanges = append(newDateRanges, range1) newDateRanges = append(newDateRanges, range2) continue } if formatedDate == dateRange.End { - d, _ := time.ParseInLocation("2006-01-02", dateRange.End, c.Timezone) - dateRange.End = d.AddDate(0, 0, -1).Format("2006-01-02") + d, _ := time.ParseInLocation(DateFormat, dateRange.End, c.Timezone) + dateRange.End = d.AddDate(0, 0, -1).Format(DateFormat) newDateRanges = append(newDateRanges, dateRange) continue } diff --git a/traffic/feeds.go b/traffic/feeds.go index 1595b7c3850146216afbc4b8223c5a19100ce2d4..1a7e3268e2e481f3f5af1538a692d7a968361a07 100644 --- a/traffic/feeds.go +++ b/traffic/feeds.go @@ -68,11 +68,11 @@ return version, fmt.Errorf("invalid version string %s, not /.*_.*/", s) } versionDates[0] += "000000" versionDates[1] += "235900" - validFrom, err := time.Parse("20060102150405", versionDates[0]) + validFrom, err := time.Parse(ValidityFormatExtended, versionDates[0]) if err != nil { return version, fmt.Errorf("invalid first part in %s: %w", s, err) } - validTill, err := time.Parse("20060102150405", versionDates[1]) + validTill, err := time.Parse(ValidityFormatExtended, versionDates[1]) if err != nil { return version, fmt.Errorf("invalid second part in %s: %w", s, err) } @@ -89,11 +89,11 @@ return version, fmt.Errorf("invalid version string %s, not /.*_.*/", s) } versionDates[0] += "000000" versionDates[1] += "235900" - validFrom, err := time.ParseInLocation("20060102150405", versionDates[0], timezone) + validFrom, err := time.ParseInLocation(ValidityFormatExtended, versionDates[0], timezone) if err != nil { return version, fmt.Errorf("invalid first part in %s: %w", s, err) } - validTill, err := time.ParseInLocation("20060102150405", versionDates[1], timezone) + validTill, err := time.ParseInLocation(ValidityFormatExtended, versionDates[1], timezone) if err != nil { return version, fmt.Errorf("invalid second part in %s: %w", s, err) } diff --git a/traffic/structs.go b/traffic/structs.go index da47daf22b59f9e9932f8eaf29f366eab88938f7..0f69e07ada7242eadc9aa8807a670680726f3e30 100644 --- a/traffic/structs.go +++ b/traffic/structs.go @@ -246,7 +246,7 @@ ValidTill time.Time } func (v Version) String() string { - return v.ValidFrom.Format("20060102") + "_" + v.ValidTill.Format("20060102") + return v.ValidFrom.Format(ValidityFormat) + "_" + v.ValidTill.Format(ValidityFormat) } type GlobalVersions map[string][]Version @@ -254,6 +254,7 @@ var DateFormat string = "2006-01-02" var DateTimeFormat string = "2006-01-02T15:04:05-07:00" var ValidityFormat string = "20060102" +var ValidityFormatExtended string = "20060102150405" type Traffic struct { CodeIndexes GlobalCodeIndex