diff options
Diffstat (limited to 'Solverv')
| -rw-r--r-- | Solverv/Models/Season.swift | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Solverv/Models/Season.swift b/Solverv/Models/Season.swift new file mode 100644 index 0000000..01eaf99 --- /dev/null +++ b/Solverv/Models/Season.swift @@ -0,0 +1,49 @@ +import SwiftUI + +enum Season: String, Codable { + case spring + case summer + case autumn + case winter + + var displayName: String { + switch self { + case .spring: return "Spring" + case .summer: return "Summer" + case .autumn: return "Autumn" + case .winter: return "Winter" + } + } + + var description: String { + switch self { + case .spring: return "Day and night are approximately equal length" + case .summer: return "Longest day of the year" + case .autumn: return "Day and night are approximately equal length" + case .winter: return "Shortest day of the year" + } + } + + var colorLight: Color { + switch self { + case .spring: return Color(red: 0.298, green: 0.686, blue: 0.314) // #4CAF50 + case .summer: return Color(red: 1.0, green: 0.761, blue: 0.039) // #FFC107 + case .autumn: return Color(red: 1.0, green: 0.596, blue: 0.0) // #FF9800 + case .winter: return Color(red: 0.129, green: 0.588, blue: 0.953) // #2196F3 + } + } + + var assetName: String { + return "Season\(displayName)" + } + + static func fromDate(_ date: Date) -> Season { + let month = Calendar.current.component(.month, from: date) + switch month { + case 3, 4, 5: return .spring + case 6, 7, 8: return .summer + case 9, 10, 11: return .autumn + default: return .winter + } + } +} |
