q
This commit is contained in:
43
Schedule ICTIS/Helpers/Date+Extensions.swift
Normal file
43
Schedule ICTIS/Helpers/Date+Extensions.swift
Normal file
@ -0,0 +1,43 @@
|
||||
//
|
||||
// Date+Extensions.swift
|
||||
// Schedule ICTIS
|
||||
//
|
||||
// Created by G412 on 14.11.2024.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
|
||||
extension Date {
|
||||
func format(_ format: String, locale: Locale = Locale(identifier: "ru_RU")) -> String {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateFormat = format
|
||||
formatter.locale = locale
|
||||
return formatter.string(from: self)
|
||||
}
|
||||
|
||||
func fetchWeek(_ date: Date = .init()) -> [WeekDay] {
|
||||
let calendar = Calendar.current
|
||||
let startOfDate = calendar.startOfDay(for: date)
|
||||
|
||||
var week: [WeekDay] = []
|
||||
let weekForDate = calendar.dateInterval(of: .weekOfMonth, for: startOfDate)
|
||||
|
||||
guard let startOfWeek = weekForDate?.start else {
|
||||
return []
|
||||
}
|
||||
|
||||
(0..<7).forEach { index in
|
||||
if let weekDay = calendar.date(byAdding: .day, value: index, to: startOfWeek) {
|
||||
week.append(.init(date: weekDay))
|
||||
}
|
||||
}
|
||||
|
||||
return week
|
||||
}
|
||||
|
||||
struct WeekDay: Identifiable {
|
||||
var id: UUID = .init()
|
||||
var date: Date
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user