mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
49 lines
1.4 KiB
Swift
49 lines
1.4 KiB
Swift
//
|
|
// Date+RelativeDate.swift
|
|
// AltStore
|
|
//
|
|
// Created by Riley Testut on 7/28/19.
|
|
// Copyright © 2019 Riley Testut. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public extension Date
|
|
{
|
|
static let shortDateFormatter: DateFormatter = {
|
|
let dateFormatter = DateFormatter()
|
|
dateFormatter.dateStyle = .short
|
|
dateFormatter.timeStyle = .none
|
|
return dateFormatter
|
|
}()
|
|
|
|
static let mediumDateFormatter: DateFormatter = {
|
|
let dateFormatter = DateFormatter()
|
|
dateFormatter.dateStyle = .medium
|
|
dateFormatter.timeStyle = .none
|
|
return dateFormatter
|
|
}()
|
|
|
|
func numberOfCalendarDays(since date: Date) -> Int
|
|
{
|
|
let today = Calendar.current.startOfDay(for: self)
|
|
let previousDay = Calendar.current.startOfDay(for: date)
|
|
|
|
let components = Calendar.current.dateComponents([.day], from: previousDay, to: today)
|
|
return components.day!
|
|
}
|
|
|
|
func relativeDateString(since date: Date, dateFormatter: DateFormatter? = nil) -> String
|
|
{
|
|
let dateFormatter = dateFormatter ?? Date.mediumDateFormatter
|
|
let numberOfDays = self.numberOfCalendarDays(since: date)
|
|
|
|
switch numberOfDays
|
|
{
|
|
case 0: return NSLocalizedString("Today", comment: "")
|
|
case 1: return NSLocalizedString("Yesterday", comment: "")
|
|
default: return dateFormatter.string(from: date)
|
|
}
|
|
}
|
|
}
|