swift - 根据时间创建 if 语句
问题描述
我希望我的快速代码遵循基于特定时间的 if 语句。我的计时器现在是军用时间。所以我想做一些事情,比如时间是 01:00 到 01:59。然后视图背景颜色应变为蓝色。所以我只是想在时间样式中控制小时时间。
import UIKit
class ViewController: UIViewController {
var box = UILabel()
@objc func tick() {
box.text = DateFormatter.localizedString(from: Date(), dateStyle: .none, timeStyle: .short)
}
var timer = Timer()
var currentDateTime = Date()
lazy var dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "hh:mm" // or "hh:mm a" if you need to have am or pm symbols
return formatter
}()
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
dateFormatter.timeStyle = .medium
box.text = "\(dateFormatter.string(from: currentDateTime))"
}
override func viewDidLoad() {
super.viewDidLoad()
box.text = DateFormatter.localizedString(from: Date(), dateStyle: .none, timeStyle: .short)
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector:#selector(self.tick) , userInfo: nil, repeats: true)
box.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(box)
box.backgroundColor = .red
NSLayoutConstraint.activate([
box.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.5),
box.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5),
box.centerXAnchor.constraint(equalTo: view.centerXAnchor),
box.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])
}
}
解决方案
如果我完全理解你想要做什么,这段代码应该可以帮助你:
...
var box = UILabel()
@objc func tick() {
box.text = DateFormatter.localizedString(from: Date(), dateStyle: .none, timeStyle: .short)
let minutesNow = getMinutesFromDate(date: Date())
if minutesNow >= 60 && minutesNow < 120 {
box.backgroundColor = .blue
}
else {
box.backgroundColor = .red
}
}
func getMinutesFromDate(date: Date) -> Int {
let dateComponents = Calendar.current.dateComponents([.hour, .minute], from: date)
let minutes = ((dateComponents.hour ?? 0) * 60) + (dateComponents.minute ?? 0)
return minutes
}
...
推荐阅读
- source-maps - autoprefixer 尝试解析 node-sass 源映射时中断
- c# - SqlDataReader 结果到列表
- php - 如何使用 wamp64 连接到 MSSQL DB
- powershell - 在 powershell 命令中使用通配符批量重命名多个文件
- php - 未捕获的错误:找不到类“文档”
- perl - 正则表达式将 JSDoc 从咖啡脚本转换为 javascript
- python - 正则表达式:匹配重复(任意时间)模式,但在不同的组中排序
- angular - 如何在按钮单击时更改激活路由的参数
- jmeter - JMeter:要报告的用户变量
- javascript - 如何单独监听 x 滚动和 y 滚动的滚动事件