TempTrack-iOS/TempTrack/Storage/CsvConverter.swift
2025-01-31 13:37:44 +01:00

41 lines
1.0 KiB
Swift

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)
}
}
}