From 6121ce80c9d30e358a41a17318b08d72668a72a6 Mon Sep 17 00:00:00 2001 From: Ricky Witherspoon Date: Thu, 5 Aug 2021 11:28:36 -0400 Subject: [PATCH] =?UTF-8?q?=E2=80=A2=20Added=20to=20date=20extension?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RSWTools/Extensions/Date+Extension.swift | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Sources/RSWTools/Extensions/Date+Extension.swift b/Sources/RSWTools/Extensions/Date+Extension.swift index 4bacc1c..dfc0103 100644 --- a/Sources/RSWTools/Extensions/Date+Extension.swift +++ b/Sources/RSWTools/Extensions/Date+Extension.swift @@ -8,10 +8,21 @@ import Foundation -public extension Date { +extension Date { + var isToday: Bool { + Calendar.current.isDateInToday(self) + } + var startOfDay: Date { return Calendar.current.startOfDay(for: self) } + + var startOfMonth: Date { + let calendar = Calendar.current + let components = calendar.dateComponents([.year, .month], from: self) + + return calendar.date(from: components)! + } var endOfDay: Date { var components = DateComponents() @@ -19,4 +30,16 @@ public extension Date { components.second = -1 return Calendar.current.date(byAdding: components, to: startOfDay)! } + + static var yesterday: Date { + return Calendar.current.date(byAdding: .day, value: -1, to: Date())! + } + + static func daysAgo(_ value: Int) -> Date { + return Calendar.current.date(byAdding: .day, value: -value, to: Date())! + } + + func isInSame(_ component: Calendar.Component, as date: Date) -> Bool { + Calendar.current.isDate(self, equalTo: date, toGranularity: component) + } }