到目前为止,我有这段代码:
var seconds = 0
var minutes = 0
var hours = 0
var secondsUntilMidnight = 0
var minutesUntilMidnight = 0
var hoursUntilMidnigh = 0
var day = 0
var month = 0
var year = 0
//xvar day = [ hours, minutes, seconds]
var damian = "DayofWeek"
var monday = true
var tuesday = false
var wednesday = true
var thursday = false
var friday = false
var saturday = true
var sunday = false
var currentDay = 0
var nextworkingday = 0
var dayOfTheWeek = [Bool]()///Var collecting bools for each day
var dayOfTheWeekText = [String]()///Collecing name for each day
where the weekday Bool values are adjustable. I want the app to detect the current time and date, and calculate the time until the next day that is set as true.
This is what I have tried so far:
let now = Date()
let calendar = Calendar.current
let components = DateComponents(calendar: calendar, hour:11 , minute : 28 ) // <- 17:00 = 5pm
// let components2 = DateComponents(calendar: calendar day : 1, _)
let next5pm = calendar.nextDate(after: now, matching: components, matchingPolicy: .nextTime)!
print (now )
let next = calendar.nextDate(after: now, matching: components, matchingPolicy: .nextTime)!
let diff = calendar.dateComponents([.hour, .minute, .second ], from: now, to: next5pm)
///Second time checker
let calendar2 = Calendar.current
let components2 = DateComponents(calendar: calendar2, hour:00 , minute : 00 ) // <- 17:00 = 5pm
let next1pm = calendar2.nextDate(after: now, matching: components2, matchingPolicy: .nextTime)!
let next2 = calendar2.nextDate(after: now, matching: components2, matchingPolicy: .nextTime)!
let diff2 = calendar2.dateComponents([.hour, .minute, .second ], from: now, to: next1pm)
secondsUntilMidnight = diff2.second!
minutesUntilMidnight = diff2.minute!
hoursUntilMidnigh = diff2.hour!
hours = diff.hour!
minutes = diff.minute!
seconds = diff.second!
但是它只计算到NEXT日的某个时间的时间,而我希望它能够检测到。例如,如果今天是星期一,第二天是星期三,那么当天就开始倒计时。
任何帮助将不胜感激。感谢。
更新 忽略代码,它只是我尝试为应用程序提供所需功能的一个示例! 在这个视口中,我希望代码检查它是哪一天,看看另一天是真的&#39;并计算到那时的时间
答案 0 :(得分:0)
Swift日期有一个方法timeIntervalSince,它将计算两个日期之间的TimeInterval(即秒数)。然后,您可以使用DateComponentsFormatter将间隔转换为包含所需单位的格式化字符串。