Sto facendo una sveglia dove ti dirà quante ore e minuti di sonno ottieni. Ho impostato un UIDatePicker
in cui l'utente sceglie a che ora vogliono svegliarsi. Indica anche l'ora esatta per il secondo. La parte su cui sono bloccato è quante ore di sonno avranno. Ho provato semplicemente a sottrarre l'ora esatta dal UIDatePicker
. Questo ha funzionato se fossero entrambi nell'AM. Ad esempio, se l'utente desiderava svegliarsi alle 10:30 e sono le 9:30, tutto quello che devi fare è sottrarre 10:30 dalle 9:30 per ottenere 1 ora. Presto ho capito che non avrebbe funzionato se fossero stati diversi giorni di tempo, ad es. Antimeridiane o pomeridiane.UIDatePicker meno l'ora esatta - Swift
Come ho avuto il tempo dalla UIDatePicker
func handler(sender: UIDatePicker) {
var timeFormatter = NSDateFormatter()
timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
var strDate = timeFormatter.stringFromDate(theDatePicker.date)
}
theDatePicker.addTarget(self, action: Selector("handler:"), forControlEvents: UIControlEvents.ValueChanged)
Come ho avuto il tempo esatto
var date = NSDate()
var outputFormat = NSDateFormatter()
outputFormat.locale = NSLocale(localeIdentifier:"en_US")
outputFormat.dateFormat = "HH:mm:ss"
timeLabel.text = (outputFormat.stringFromDate(date))
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("getTime"), userInfo: nil, repeats: true)
La mia domanda:
Come faccio a sottrarre il UIDatePicker
dall'esatto tempo di ottenere le ore di sonno che l'utente sta ottenendo?
Cambia la tua selezione data per essere in formato 24 ore invece di 12, forse. – Abizern
@Abizern Probabilmente funzionerebbe, ma come potrei fare questo è un qualche tipo di funzione o semplicemente aggiungere 12 all'ora? – alex
È impostato in base alle impostazioni internazionali (io vivo in un paese con orologio di 24 ore, quindi non vedo am/pm) Ma perché non aggiungere un giorno alla prossima accensione se l'ora corrente è successiva all'ora della sveglia. – Abizern