Blame view

HDFwear/Home/Model/NewIntensiveTimeModel.swift 1.35 KB
36b76cd7   jason   feat:intensive ti...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  //
  //  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;
      }
  }