应用程序找出它在哪一天,并计算用户选择的第二天的时间

问题描述 投票:0回答:1

到目前为止,我有这个代码:

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日的某个时间之前的时间。例如,如果今天是星期一,而第二天是星期三,则开始倒数到当天的选择时间。

任何帮助,将不胜感激。谢谢。

更新忽略代码,它只是我尝试为应用程序提供所需功能的一个示例!在这个视口中,我希望代码检查它是哪一天,看看另一天是'真'并计算时间直到那时

ios swift date
1个回答
0
投票

Swift日期有一个方法timeIntervalSince,它将计算两个日期之间的TimeInterval(即秒数)。然后,您可以使用DateComponentsFormatter将间隔转换为包含所需单位的格式化字符串。

© www.soinside.com 2019 - 2024. All rights reserved.