struct ContentView: View { @State private var selectedDates: Set<DateComponents> = [] var body: some View { VStack { Text("DevTechie!") .font(.largeTitle) .foregroundColor(.primary) MultiDatePicker("Travel Dates", selection: $selectedDates) .frame(height: 300) } .padding() } }
struct ContentView: View { @State private var selectedDates: Set<DateComponents> = [] @State private var formattedDates: String = "" let formatter = DateFormatter() var body: some View { VStack { Text("DevTechie!") .font(.largeTitle) .foregroundColor(.primary) MultiDatePicker("Travel Dates", selection: $selectedDates) .frame(height: 300) .onChange(of: selectedDates, perform: { _ in formatSelectedDates() }) ScrollView { LazyVStack(alignment: .leading) { Text(formattedDates) } } .frame(maxWidth: .infinity) } .padding() } private func formatSelectedDates() { formatter.dateFormat = "MMM-dd-YY" let dates = selectedDates .compactMap { date in Calendar.current.date(from: date) } .map { date in formatter.string(from: date) } formattedDates = dates.joined(separator: "\n") } }
struct ContentView: View { @State private var selectedDates: Set<DateComponents> = [] @State private var formattedDates: String = "" let formatter = DateFormatter() var body: some View { VStack { Text("DevTechie!") .font(.largeTitle) .foregroundColor(.primary) MultiDatePicker("Travel Dates", selection: $selectedDates, in: ..<Date()) .frame(height: 300) .onChange(of: selectedDates, perform: { _ in formatSelectedDates() }) ScrollView { LazyVStack(alignment: .leading) { Text(formattedDates) } } .frame(maxWidth: .infinity) } .padding() } private func formatSelectedDates() { formatter.dateFormat = "MMM-dd-YY" let dates = selectedDates .compactMap { date in Calendar.current.date(from: date) } .map { date in formatter.string(from: date) } formattedDates = dates.joined(separator: "\n") } }
struct ContentView: View { @State private var selectedDates: Set<DateComponents> = [] @State private var formattedDates: String = "" let formatter = DateFormatter() var body: some View { VStack { Text("DevTechie!") .font(.largeTitle) .foregroundColor(.primary) MultiDatePicker("Travel Dates", selection: $selectedDates, in: Date()...) .frame(height: 300) .onChange(of: selectedDates, perform: { _ in formatSelectedDates() }) ScrollView { LazyVStack(alignment: .leading) { Text(formattedDates) } } .frame(maxWidth: .infinity) } .padding() } private func formatSelectedDates() { formatter.dateFormat = "MMM-dd-YY" let dates = selectedDates .compactMap { date in Calendar.current.date(from: date) } .map { date in formatter.string(from: date) } formattedDates = dates.joined(separator: "\n") } }
struct ContentView: View { @State private var selectedDates: Set<DateComponents> = [] @State private var formattedDates: String = "" let formatter = DateFormatter() let fromDate = Calendar.current.date(from: DateComponents(year: 2022, month: 06, day: 15))! let toDate = Calendar.current.date(from: DateComponents(year: 2022, month: 06, day: 18))! var body: some View { VStack { Text("DevTechie!") .font(.largeTitle) .foregroundColor(.primary) MultiDatePicker("Travel Dates", selection: $selectedDates, in: fromDate..<toDate) .frame(height: 300) .onChange(of: selectedDates, perform: { _ in formatSelectedDates() }) ScrollView { LazyVStack(alignment: .leading) { Text(formattedDates) } } .frame(maxWidth: .infinity) } .padding() } private func formatSelectedDates() { formatter.dateFormat = "MMM-dd-YY" let dates = selectedDates .compactMap { date in Calendar.current.date(from: date) } .map { date in formatter.string(from: date) } formattedDates = dates.joined(separator: "\n") } }
struct ContentView: View { @State private var selectedDates: Set<DateComponents> = [] @State private var formattedDates: String = "" let formatter = DateFormatter() let fromDate = Calendar.current.date(from: DateComponents(year: 2022, month: 06, day: 15))! let toDate = Calendar.current.date(from: DateComponents(year: 2022, month: 06, day: 18))! var body: some View { VStack { Text("DevTechie!") .font(.largeTitle) .foregroundColor(.primary) MultiDatePicker("Travel Dates", selection: $selectedDates, in: fromDate..<toDate) .frame(height: 300) .onChange(of: selectedDates, perform: { _ in formatSelectedDates() }) .tint(.orange) .padding() .background(Color.blue.opacity(0.2).gradient, in: RoundedRectangle(cornerRadius: 10)) ScrollView { LazyVStack(alignment: .leading) { Text(formattedDates) } } .frame(maxWidth: .infinity) } .padding() } private func formatSelectedDates() { formatter.dateFormat = "MMM-dd-YY" let dates = selectedDates .compactMap { date in Calendar.current.date(from: date) } .map { date in formatter.string(from: date) } formattedDates = dates.joined(separator: "\n") } }
With that we have reached the end of this article. Thank you once again for reading. Subscribe to our weekly newsletter at https://www.devtechie.com