【发布时间】:2021-07-24 21:30:09
【问题描述】:
我想看看今天的日期是否在两个日期之间。如果今天的日期在某些日期之间,它会改变变量的值。
例如:
var p = 5
if viewModel.currentTime > "2021-04-23" && viewModel.currentTime < "2021-05-23"
{
p = 2
}
这就是我想要实现的目标,但使用的是 SwiftUI 语言,但我不知道该怎么做。
我正在考虑使用 if 语句,但这不起作用。我有这门课可以得到今天的日期。
@Published var currentTime = ""
var timer = Timer()
init() {
let repeatEveryXSeconds: TimeInterval = 1
timer = Timer.scheduledTimer(withTimeInterval: repeatEveryXSeconds, repeats: true, block: { [weak self] timer in
let formatter = DateFormatter()
formatter.dateFormat = "YYYY-MM-dd"
self?.currentTime = formatter.string(from: Date())
})
}
}
struct Dates: View {
@StateObject private var viewModel = ViewModel()
我需要一些帮助或建议来完成这项任务。
如果有任何混淆,请告诉我。这有点难以解释。
更新:
这是我得到的错误:
【问题讨论】:
-
您不能在结构的顶层运行此代码。把它放在一个函数中或者把它移到定时器类中
-
我把它放在一个函数中并且它工作了,但是我怎样才能返回 p 的值呢?
-
在函数中声明一个返回值,但只返回比较结果可能更有用
-
like this func pval() -> Int { p = 1 let now = Date() let day1 = Date.parse("2021-04-23") let day2 = Date.parse(" 2021-05-23") 如果现在 > day1 && now
-
是的,但我会这样做
func pval() -> Bool {let now = Date() let day1 = Date.parse("2021-04-23") let day2 = Date.parse("2021-05-23") return now > day1 && now < day2 }和其他地方p = pval() ? 2 : 1