我想从所选日期中添加/减去一天。例如,用户选择 09-10-2019,当用户按下按钮时,日期应为 10-10-2019。
我并不是要从当前日期增加或减少一天。
在上一个屏幕上,我有一个变量 -> 这是用户选择的并且不是静态的
selecteddate = "09.10.2019"
我将它声明为一个全局变量,因此它可以在多个屏幕中使用,所以在这个屏幕中,我得到了这个“选定日期”。
我有 3 个 UIButtons。昨天按钮、选定日期按钮和明天按钮
- 当用户按下昨天按钮时,1 天应该从 'selecteddate' 变量
- 当用户按下明天按钮时,应将 1 天添加到 'selecteddate' 变量。
我按照答案说的做了。但不幸的是,我选择的日期是一个字符串,我需要以其格式将字符串发送到 api。 所以,我做了以下事情。
let dateFormattera = DateFormatter()
dateFormattera.dateFormat = "dd.MM.yyyy"
let date = dateFormattera.date(from: datetoday)
let newdate = Calendar.current.date(byAdding: .day, value: +1, to: date!)
let dateFormatterb = DateFormatter()
dateFormatterb.dateFormat = "dd.MM.yyyy"
let tomorrowdate = dateFormatterb.string(from: newdate!)
let dateFormatterx = DateFormatter()
let day = dateFormatterx.date(from: datetoday)
let newday = Calendar.current.date(byAdding: .day, value: +1, to: date!)
let dateFormattery = DateFormatter()
dateFormattery.dateFormat = "EEE"
let tomorrowday = dateFormattery.string(from: newdate!)
这里面可能有垃圾代码,但这让一切都按预期工作。这得到日期和日期。我不得不使用它,因为尽管执行 -1 或 +1
最佳答案
我建议你使用:
Calendar.current.date(byAdding: .day, value: 1, to: selecteddate)
这会将一天添加到 selecteddate
然后,如果你有 2 个按钮,正如你所解释的,你可以为每个按钮设置一个 tag
:
yesterdaybutton.tag = -1
tomorrowbutton.tag = 1
我们将使用每个按钮的标签来增加或减少 selecteddate
所以,两个按钮都会使用这个:
@IBAction func buttonAction(_ sender: UIButton) {
let newDate = Calendar.current.date(byAdding: .day, value: sender.tag, to: selecteddate)
}
关于ios - 如何在我从上一个屏幕选择的日期执行 +1 或 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56038816/