【iOS,Swift3】Extension晒す〜Date編〜
表題の通りです。ご査収ください。
import Foundation extension Date { // MARK: - public property /// 週あたりの日数 public var daysPerWeek: Int { get { return 7 } } /// 月の初めの日 public var firstDateOfMonth: Date { get { let calendar = NSCalendar.current var components = calendar.dateComponents([.year, .month, .day], from: self) components.day = 1; return calendar.date(from: components)! } } /// 月の週数 public var numberOfWeeksForMonth: Int { get { let rangeOfWeeks = NSCalendar.current.range(of: Calendar.Component.weekOfMonth, in: Calendar.Component.month, for: firstDateOfMonth) return (rangeOfWeeks?.count)! } } /// 月の日数 public var numberOfDaysForMonth: Int { get { let rangeOfDays = NSCalendar.current.range(of: Calendar.Component.day, in: Calendar.Component.month, for: firstDateOfMonth) return (rangeOfDays?.count)! } } // MARK: - public method /// toString() /// /// - Parameter format: フォーマット /// - Parameter calendarIdntifier: カレンダーIdentifier /// - Returns: 文字列 public func toString(format: String, calendarIdentifier: Calendar.Identifier = .gregorian) -> String { let formatter = DateFormatter() formatter.calendar = Calendar(identifier: calendarIdentifier) formatter.dateFormat = format return formatter.string(from: self) } /// fromString() /// /// - Parameters: /// - string: 文字列 /// - format: フォーマット /// - Parameter calendarIdntifier: カレンダーIdentifier /// - Returns: Date public static func fromString(_ string: String, format: String, calendarIdentifier: Calendar.Identifier = .gregorian) -> Date? { let formatter = DateFormatter() formatter.calendar = Calendar(identifier: calendarIdentifier) formatter.dateFormat = format return formatter.date(from: string) } }