NSDate beginning of day and end of day

后端 未结 23 2106
广开言路
广开言路 2020-11-29 23:28
    -(NSDate *)beginningOfDay:(NSDate *)date
{
    NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *components = [cal components:( NSMonthCalend         


        
23条回答
  •  甜味超标
    2020-11-30 00:00

    My Swift extensions for NSDate:

    Swift 1.2

    extension NSDate {
    
        func beginningOfDay() -> NSDate {
            var calendar = NSCalendar.currentCalendar()
            var components = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: self)
            return calendar.dateFromComponents(components)!
        }
    
        func endOfDay() -> NSDate {
            var components = NSDateComponents()
            components.day = 1
            var date = NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: self.beginningOfDay(), options: .allZeros)!
            date = date.dateByAddingTimeInterval(-1)!
            return date
        }
    }
    

    Swift 2.0

    extension NSDate {
    
        func beginningOfDay() -> NSDate {
            let calendar = NSCalendar.currentCalendar()
            let components = calendar.components([.Year, .Month, .Day], fromDate: self)
            return calendar.dateFromComponents(components)!
        }
    
        func endOfDay() -> NSDate {
            let components = NSDateComponents()
            components.day = 1
            var date = NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: self.beginningOfDay(), options: [])!
            date = date.dateByAddingTimeInterval(-1)
            return date
        }
    }
    

提交回复
热议问题