Friday, 3 May 2019

Get dates iOS (Today, yesterday, this week, last week, this month, last month, last 30days)



var dateFormatter:DateFormatter!
var date:Date!


dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
date = Date()
//Today date
let dateString = dateFormatter.string(from: date)
print(dateString)

//Yesterday
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: date)!
let yesterdayString = dateFormatter.string(from: yesterday)
print(yesterdayString)

//This week
let startWeek = date.startOfWeek
//let endWeek = date.endOfWeek
let startWeekString = dateFormatter.string(from: startWeek!)
//let endWeekString = dateFormatter.string(from: endWeek!)
let dateString = dateFormatter.string(from: date)
print(startWeekString)
print(dateString)

//Last week  problem
var calendar = Calendar.current
calendar.firstWeekday = 2 // 1 is Sunday, 2 is Monday
let lastWeek = calendar.date(byAdding: .weekOfYear, value: -1, to: Date())
if let lastWeek = lastWeek {
    var startOfLastWeek = Date()
    var interval = TimeInterval(0)
    _ = Calendar.current.dateInterval(of: .weekOfYear, start: &startOfLastWeek, interval: &interval, for: lastWeek)
    let endOfLastWeek = startOfLastWeek.addingTimeInterval(interval)
    print(startOfLastWeek)
    print(endOfLastWeek)
                   
    let startWeekString = dateFormatter.string(from: startOfLastWeek)
    let endWeekString = dateFormatter.string(from: endOfLastWeek)
    print(startOfLastWeek)
    print(endOfLastWeek)
}


//This month
dateFormatter.dateFormat = "MM-yyyy"
var startOfMonth = dateFormatter.string(from: date)
print(startOfMonth)//04-2019
startOfMonth = "01-\(startOfMonth)"
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
let dateString = dateFormatter.string(from: date)
print(dateString)

//Last month
let lastMonth = Calendar.current.date(byAdding: .month, value: -1, to: date)
if let lastMonth = lastMonth {
    var startOfLastMonth = Date()
    var interval = TimeInterval(0)
     _ = Calendar.current.dateInterval(of: .month, start: &startOfLastMonth, interval: &interval, for: lastMonth)
    let endOfLastMonth = startOfLastMonth.addingTimeInterval(interval-1)
    let startLastMonth = dateFormatter.string(from: startOfLastMonth)
    let endLastMonth = dateFormatter.string(from: endOfLastMonth)
    print(startLastMonth)
    print(endLastMonth)
}


//Last 30days
let last30Days = Calendar.current.date(byAdding: .day, value: -30, to: date)!
print(dateFormatter.string(from: last30Days))//11-03-2019 13:16:50
let last30Day = dateFormatter.string(from: last30Days)
let s = last30Day.components(separatedBy: " ")
let dateString = dateFormatter.string(from: date)
print(dateString)








No comments:

Post a Comment

Difference between == and ===

Difference between == and === https://stackoverflow.com/questions/24002819/difference-between-and == operator checks if their ...