我正在开发一个应用程序,需要判断作业(job)的截止日期.我想知道到期日是否在下周内,是否在下周内,然后执行一项操作

推荐答案

我喜欢使用扩展来提高代码的可读性.这里有几个NSDate扩展可以帮助您轻松地整理代码.我把它放进了共享代码.swift文件:

extension NSDate {

    func isGreaterThanDate(dateToCompare: NSDate) -> Bool {
        //Declare Variables
        var isGreater = false

        //Compare Values
        if self.compare(dateToCompare as Date) == ComparisonResult.orderedDescending {
            isGreater = true
        }

        //Return Result
        return isGreater
    }

    func isLessThanDate(dateToCompare: NSDate) -> Bool {
        //Declare Variables
        var isLess = false

        //Compare Values
        if self.compare(dateToCompare as Date) == ComparisonResult.orderedAscending {
            isLess = true
        }

        //Return Result
        return isLess
    }

    func equalToDate(dateToCompare: NSDate) -> Bool {
        //Declare Variables
        var isEqualTo = false

        //Compare Values
        if self.compare(dateToCompare as Date) == ComparisonResult.orderedSame {
            isEqualTo = true
        }

        //Return Result
        return isEqualTo
    }

    func addDays(daysToAdd: Int) -> NSDate {
        let secondsInDays: TimeInterval = Double(daysToAdd) * 60 * 60 * 24
        let dateWithDaysAdded: NSDate = self.addingTimeInterval(secondsInDays)

        //Return Result
        return dateWithDaysAdded
    }

    func addHours(hoursToAdd: Int) -> NSDate {
        let secondsInHours: TimeInterval = Double(hoursToAdd) * 60 * 60
        let dateWithHoursAdded: NSDate = self.addingTimeInterval(secondsInHours)

        //Return Result
        return dateWithHoursAdded
    }
}

现在,如果你可以这样做:

//Get Current Date/Time
var currentDateTime = NSDate()

//Get Reminder Date (which is Due date minus 7 days lets say)
var reminderDate = dueDate.addDays(-7)

//Check if reminderDate is Greater than Right now
if(reminderDate.isGreaterThanDate(currentDateTime)) {
    //Do Something...
}

Swift相关问答推荐

结束手势不会在滚动视图中触发

在SWIFTUI&39;S视图修改器中使用等待关键字

字典下标或运算符,如果密钥不存在,则添加指定的默认&值是SWIFT?

swift:只要框架名称中有一个带有框架名称的公共实体,就指定框架中公共 struct 的路径

TimeZone 背后的目的

使用View()和List()无法显示影子

Xcode 15 Beta中如何使用@Observable?

为什么自定义串行队列的目标是全局队列时,Swift中不会并发执行?

String(validatingUTF8:) 和 String(utf8String:) 之间有区别吗?

swift 是否遇到 Java 的 2gb 最大序列化大小问题?

swift 是否遇到 Java 的 2gb 最大序列化大小问题?

动画偏移正在 destruct 按钮 SwiftUI

Swift - 给定一个像 30 的 Int 如何将范围数乘以 7?

如何将回调传递给 View init

SwiftUI:从存储在 observableObject 中的数组中删除对象时查看崩溃

展开 List 中的 HStack 以端到端但不是从上到下,因此看起来项目之间有更宽的空间

组合 flatMap 不会返回预期的上下文结果类型

在swift 3中将文件保存在文档目录中?

SwiftUI - 呈现工作表后导航栏按钮不可点击

如何在 SwiftUI Segmented Picker 中更改选定的段 colored颜色