NewIntensiveTimeModel.swift 1.35 KB
//
//  NewIntensiveTimeModel.swift
//  HDFwear
//
//  Created by admin on 2024/1/17.
//

import Foundation
import UIKit
import HandyJSON
import SwiftDate

class NewIntensiveTimeModel: NSObject {
    required override init() { }
    
    var year: UInt32 = 0
    var month: UInt32 = 0
    var day: UInt32 = 0
    var intensiveFragments : [UInt8] = []
    
    
    override var description: String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let dateString = dateFormatter.string(from: DateComponents(calendar: Calendar.current, year: Int(year), month: Int(month), day: Int(day)).date!)
        
        let fragmentsString = intensiveFragments.map { String(format: "%d", $0) }.joined(separator: " ")
        
        return "NewIntensiveTimeModel\n" +
        "Date: \(dateString)\n" +
        "Intensive Fragments: \(fragmentsString)"
    }
    
    class func toIntensiveTimeModel(_ data: [UInt8]) -> NewIntensiveTimeModel {
        let s = NewIntensiveTimeModel()
        guard data.count >= 28 else {
            return s
        }
        
        s.year = data[0..<2].reduce(0) { ($0 << 8) + UInt32($1) }
        s.month = data[2..<3].reduce(0) { ($0 << 8) + UInt32($1) }
        s.day = data[3..<4].reduce(0) { ($0 << 8) + UInt32($1) }
        s.intensiveFragments = Array(data[4..<28])
        return s;
    }
}