Add CSV export for days

This commit is contained in:
Christoph Hagen
2025-01-31 13:37:44 +01:00
parent 00e4da3f21
commit e9f6bafe33
6 changed files with 173 additions and 6 deletions

View File

@@ -0,0 +1,40 @@
import Foundation
struct CsvConverter {
private let dateFormatter: DateFormatter
init() {
dateFormatter = .init()
dateFormatter.dateStyle = .short
dateFormatter.timeStyle = .medium
}
private var header: String {
"Index;Date;Sensor 0;Sensor 1\n"
}
func convert(measurements: [TemperatureMeasurement]) -> String {
header + measurements.enumerated().map { (index, measurement) -> String in
let parts: [String] = [
"\(index)",
dateFormatter.string(from: measurement.date),
convert(measurement.sensor0),
convert(measurement.sensor1)
]
return parts.joined(separator: ";")
}.joined(separator: "\n")
}
private func convert(_ value: TemperatureValue) -> String {
switch value {
case .notFound:
return ""
case .invalidMeasurement:
return "?"
case .value(let value):
return String(format:"%.1f", value)
}
}
}