diff --git a/app/dime/Views/LogView.swift b/app/dime/Views/LogView.swift index 5da5075..d0a9230 100644 --- a/app/dime/Views/LogView.swift +++ b/app/dime/Views/LogView.swift @@ -2207,6 +2207,32 @@ struct MonthStepperView: View { } } +private enum LogDateFormatters { + static let sectionDateWithYear: DateFormatter = { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "EEE, d MMM yy" + return dateFormatter + }() + + static let sectionDate: DateFormatter = { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "EEE, d MMM" + return dateFormatter + }() + + static let accessibilityDate: DateFormatter = { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "EEE, d MMM yyyy" + return dateFormatter + }() + + static let accessibilityTime: DateFormatter = { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "h:mm a" + return dateFormatter + }() +} + func dateConverter(date: Date) -> String { let calendar = Calendar.current @@ -2219,20 +2245,12 @@ func dateConverter(date: Date) -> String { } else if calendar.isDateInYesterday(date) { return String(localized: "yesterday") } else if startOfCurrentYear > date { - let dateFormatter = DateFormatter() - - dateFormatter.dateFormat = "EEE, d MMM yy" - - var string = dateFormatter.string(from: date) + var string = LogDateFormatters.sectionDateWithYear.string(from: date) string.insert("'", at: string.index(string.endIndex, offsetBy: -2)) return string } else { - let dateFormatter = DateFormatter() - - dateFormatter.dateFormat = "EEE, d MMM" - - return dateFormatter.string(from: date) + return LogDateFormatters.sectionDate.string(from: date) } } @@ -2244,20 +2262,12 @@ func dateConverterAccessibilityLabel(date: Date) -> String { } else if calendar.isDateInYesterday(date) { return "yesterday" } else { - let dateFormatter = DateFormatter() - - dateFormatter.dateFormat = "EEE, d MMM yyyy" - - return "on " + dateFormatter.string(from: date) + return "on " + LogDateFormatters.accessibilityDate.string(from: date) } } func timeConverterAccessibilityLabel(date: Date) -> String { - let dateFormatter = DateFormatter() - - dateFormatter.dateFormat = "h:mm a" - - return dateFormatter.string(from: date) + return LogDateFormatters.accessibilityTime.string(from: date) } func dayTotal(dayTransaction: [Transaction]) -> Double {