【问题标题】:How do I make a currency calculations based on rounded times?如何根据舍入时间进行货币计算?
【发布时间】:2022-11-14 06:32:01
【问题描述】:

我有 SwiftUI 代码,它计算两次(startTime 和 endTime)之间的持续时间并四舍五入到最接近的 15 分钟。但是我如何从这个持续时间计算出每小时 220 美元的汇率呢?

我似乎也在努力将我的代码组织成视图代码(对于 SwiftUI),并且还包括在后台运行的数字代码。

但这是我到目前为止与 cmets 的代码,我需要在其中包含此代码。

import SwiftUI

struct ContentView: View {
    
    @State private var startTime = Date().zeroSeconds
    @State private var endTime = Date().zeroSeconds
    @State private var number15Intervals = 0
    @State private var amountDue = 0.0
    
    
    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("Enter Case Times:")) {
                    DatePicker("Start Time", selection: $startTime , displayedComponents: .hourAndMinute)
                    DatePicker("End Time", selection: $endTime, in: startTime..., displayedComponents: .hourAndMinute)
                }
                Section(header: Text("Case Duration:")) {
                    Text("duration = \(self.duration) min")
                    Text("duration (15m) = \(self.duration15) min")
                }
                Section(header: Text("Amount Due:")) {
                    
 //        What code do I put here to calculate currency (US dollars)
//         which equals time (rounded up by 15 min) times a rate of $220 per hour?
                    
                    Text(amountDue, format: .currency(code: Locale.current.currencyCode ?? "USD"))
                }
            }
            .navigationTitle("DDA Rates Calculator")
        }
    }
    
    var duration: TimeInterval {
        guard endTime > startTime else {
            return 0
        }
        let dateIntervalMinutes = DateInterval(start: startTime, end: endTime).duration / 60
        return dateIntervalMinutes
    }
    
    var duration15: TimeInterval {
        return  (self.duration/15.0).rounded(.up)*15
    }
}

extension Date {
    var zeroSeconds: Date {
        let calendar = Calendar.current
        let dateComponents = calendar.dateComponents([.hour, .minute], from: self)
        return calendar.date(from: dateComponents) ?? self
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

对不起,如果我在这里不太清楚。我已经尝试了各种方法来做到这一点,但似乎总是从 XCode 中得到各种错误。我认为展示我迄今为止尝试过的东西会更令人困惑,因为我尝试了很多方法而没有成功。我不了解范围以及如何在 SwiftUI 中正确引用变量。

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    你能澄清你的目标吗?您是否尝试以当地货币计算汇率?问这个问题可能很愚蠢——但如果你不转换成当地货币,那么费率肯定只是每小时 220 美元?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2018-10-29
      • 1970-01-01
      • 2014-10-27
      • 2020-04-08
      • 1970-01-01
      相关资源
      最近更新 更多