Такая же проблема. Началось, когда я добавил несколько изображений в свою папку с возможностью переноса и попытался получить к ним доступ. Также добавленные изображения имели расширение с прописными буквами. Кажется, это разбило сборку, так как даже если я переименовал их, сообщение было таким же, и R было недоступно. То, что я сделал, в файле .iml, я искал excludeFolder и удалял их (например, ниже):
<excludeFolder url="file://$MODULE_DIR$/build/apk" />
<excludeFolder url="file://$MODULE_DIR$/build/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
<excludeFolder url="file://$MODULE_DIR$/build/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/res" />
<excludeFolder url="file://$MODULE_DIR$/build/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
После этого я перестроил проект, и R волшебным образом снова появился.
Вы можете использовать дату календаря dateComponents из Date to Date и передать только компонент дня:
let date = Date(timeIntervalSinceReferenceDate: 0) // "2001-01-01 00:00:00 +0000"
let days = Calendar.current.dateComponents([.day], from: date, to: Date()).day // 5971