ios - 如何在我从上一个屏幕选择的日期执行 +1 或 -1?

标签 ios swift date

我想从所选日期中添加/减去一天。例如,用户选择 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/

相关文章:

java - Java7 的日期差异(以天为单位)

ios - 如何删除 canDisplayAdBanner 创建的空白区域?

ios - Xcode 12、SwiftUI 和 Spotify.framework — 错误 : extra info about plist: ACL=<not found>

swift - 尝试连接字符串时出现 nill 错误

ios - 如何在所有设备中使用 swift4 在 CollectionView 中显示三列

mysql - 使用变量并重用它时,SELECT 语句无法正确显示数据

javascript - 如何使用 JavaScript 将 HTML 表格单元格中的日期更改为本地时间?

ios - XCode - 图像上触摸事件的精确相对坐标 - iOS

ios - Facebook 应用详情页面目前不符合提交条件

ios - 当用户与 iAd Swift 交互时暂停游戏