import FSCalendar
class ViewController: UIViewController, FSCalendarDataSource, FSCalendarDelegate {
@IBOutlet weak var calendar: FSCalendar!
override func viewDidLoad() {
super.viewDidLoad()
calendar.dataSource = self
calendar.delegate = self
}
}
struct AppointmentSlot { var startDate: Date var endDate: Date }
let slots = [ AppointmentSlot(startDate: Date(timeIntervalSinceNow: 3600), endDate: Date(timeIntervalSinceNow: 7200)), AppointmentSlot(startDate: Date(timeIntervalSinceNow: 7200), endDate: Date(timeIntervalSinceNow: 10800)), AppointmentSlot(startDate: Date(timeIntervalSinceNow: 10800), endDate: Date(timeIntervalSinceNow: 14400)) ]
func calendar(_ calendar: FSCalendar, cellFor date: Date, at monthPosition: FSCalendarMonthPosition) -> FSCalendarCell { let cell = calendar.dequeueReusableCell(withIdentifier: "cell", for: date, at: monthPosition) as! CustomCell
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy HH:mm"
let dateString = dateFormatter.string(from: date)
cell.dateLabel.text = dateString
for slot in slots {
if slot.startDate <= date && slot.endDate >= date {
cell.isSelectable = true
cell.slot = slot
cell.backgroundColor = UIColor.green
cell.layer.borderColor = UIColor.black.cgColor
cell.layer.borderWidth = 1.0
break
}
}