【发布时间】: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