Domanda

Ho un appuntamento convertito in un valore doppio e salvato nel database. Ora, voglio mettere a confronto se ore currentDate > myDataBaseDate + 8 cioè, voglio ottenere 8 ore aggiunti myDataBaseDate. Sto data di conversione in valori doppi. Allora, come faccio ad avere 8 ore più tardi volta dal mio database di data salvata. Come faccio a confrontare

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
È stato utile?

Soluzione

Non sono del tutto sicuro di quello che si sta cercando di fare, ma è possibile creare un oggetto NSDate con l'aggiunta di tempo in secondi a un altro NSDate utilizzando:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

// per esempio. aggiungere 8 ore l'ora corrente:

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];

Altri suggerimenti

Dato che iOS 8 c'è il dateByAddingUnit più conveniente:

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)

È possibile utilizzare semplicemente:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];

Si può semplicemente aggiungere 8 * 3600 al valore del database (assumendo che il valore doppio convertito rappresenta i secondi).

* NSDate startdate = datePicker.date;

    NSTimeInterval secondsInOneHours = 1 * 60 * 60;

    NSDate *dateOneHoursAhead = [startdate dateByAddingTimeInterval:secondsInOneHours];

    [dateformate setDateFormat:@"d-MMM-yy HH:mm:ss"];

    strDate = [dateformate stringFromDate:dateOneHoursAhead];

Swift 3.X Utilizzo semplice

let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top