Volgende dag selecteren (NSDate) discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Hey devvers In mijn app wil ik 1x per dag een bestand downloaden. Dus ik moet op een of andere manier kunnen checken of het ...
|
Registreer | FAQ | Ledenlijst | Kalender | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
#1
|
||||
|
||||
Volgende dag selecteren (NSDate)
Hey devvers
In mijn app wil ik 1x per dag een bestand downloaden. Dus ik moet op een of andere manier kunnen checken of het de volgende dag na 6u AM is adhv de NSDate die ik opsla van de laatste download.. Ik heb al de documentatie bekeken maar heb niets concreets gevonden. Iemand een idee? Bedankt. |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
|||
|
|||
iets in deze richting zou ik zoeken:
Code:
NSDate *gisteren = [[NSDate alloc] initWithString:@"2009-07-30* 06:00:00 +0100"]; NSDate * nu = [NSDate date]; if([nu timeIntervalSince:gisteren] > 86400) { // 86400 sec == 1 dag // do ya thang }
__________________
Software Engineer iPhone Developer |
#3
|
|||
|
|||
Code:
NSDate *laatsteDownload; // Laatste download (bewaard in een plist of iets dergelijk) NSTimeInterval diff = [[NSDate date] timeIntervalSinceDate:laatsteDownload]; if (diff >= 24 * 3600) { // Doe iets nuttig } |
#4
|
||||
|
||||
@Whacko
Nu heb je de datum zelf ingevuld, enig idee hoe ik mijn opgeslagen datum erin zet maar dan het uur aanpast naar die 6am? @Matisse Dat was mij gelukt Maar dat is precies 24 uur, ik zoek de volgende dag na 6u AM. Laatst gewijzigd door SkyTrix; 31-07-09 om 13:38. |
#5
|
|||
|
|||
heb al iets beters gevonden:
NSCalendar gebruiken: Code:
NSDateComponents *gisterenComp = [[NSDateComponents alloc] init]; [gisterenComp setYear:2009]; [gisterenComp setMonth:7]; [gisterenComp setDay:30]; [gisterenComp setHour:6]; [gisterenComp setMinute:0]; [gisterenComp setSecond:0]; NSDate *gisteren = [gregorian dateFromComponents:comps]; [comps release]; NSDateComponents *dateComponents = [gregorian components: NSHourCalendarUnit fromDate:gisteren toDate: nu options: 0]; uren = [dateComponents hour]; if(uren >= 24){ // doe je ding } Code:
unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit; NSDateComponents *gisterenComp = [gregorian components: unitFlags fromDate:gisteren]; [gisterenComp setHour:6]; [gisterenComp setMinute:0]; [gisterenComp setSecond:0]; NSDate *gisteren = [gregorian dateFromComponents:comps]; [comps release]; NSDateComponents *dateComponents = [gregorian components: NSHourCalendarUnit fromDate:gisteren toDate: nu options: 0]; uren = [dateComponents hour] ; if(uren >= 24){ // doe je ding } EDIT: foutje Laatst gewijzigd door Whacko; 31-07-09 om 14:03. |
#6
|
||||
|
||||
Ik heb het even uitgeprobeerd, stonden wat variabelenamen niet in zoals gregorian. Dat moet een NSCalendar zijn neem ik aan.
Code:
// Laatste download ophalen NSLog(@"Now: %@", [NSDate date]); NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSDate *lastUpdate = [prefs objectForKey:@"lastUpdate"]; NSLog(@"Last: %@", lastUpdate); NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit; NSDateComponents *gisterenComp = [gregorian components: unitFlags fromDate:lastUpdate]; [gisterenComp setHour:6]; [gisterenComp setMinute:0]; [gisterenComp setSecond:0]; NSDate *gisteren = [gregorian dateFromComponents:gisterenComp]; NSDateComponents *dateComponents = [gregorian components: NSHourCalendarUnit fromDate:gisteren toDate:[NSDate date] options:0]; NSInteger uren = [dateComponents hour] ; NSLog(@"%i", uren); Code:
Now: 2009-07-31 13:23:47 +0200 Last: 2009-07-31 11:08:25 +0200 7 EDIT: toch niet, ik moet vergelijken met die van 06 AM he Het werkt nu denk ik, thanks! Laatst gewijzigd door SkyTrix; 31-07-09 om 14:35. |
#7
|
|||
|
|||
hehe ik wilde net reageren, toen ik refreshte stond jouw reactie erbij hij verzet de tijd van gistern naar 6 uur, dus dan zit er inderdaad 7 uur tussen
|
#8
|
||||
|
||||
Het duurde toch een tijdje tegen ik het doorhad Ben niet bepaald sterk met datums..
Thx |
#9
|
|||
|
|||
oh nog een leuke... als je gaat testen met zomer en wintertijd, dan kan die 24 uur dus minder worden he have fun
|
#10
|
||||
|
||||
Ja heb al zitten aan denken.. :/ Als die 24 minder wordt is het niet erg, een keer te veel updaten mag, te weinig niet.
|
#11
|
|||
|
|||
minder updaten zal ie waarschijnlijk niet doen (ik ken de rest van je code niet natuurlijk) maar je moet eerder denken aan dat ie een uur eerder of later (relatief aan de vorige dag) update.
|
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Discussietools | |
Weergave | |
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
Help! Bug in NSDate! | markvwijnen | Ontwikkelen voor iOS | 4 | 31-05-09 12:58 |
Klok icon taskbar alleen voor volgende dag | ThoMM. | Jailbreak apps en thema's | 2 | 08-10-08 22:37 |
Agenda staat op volgende dag! | Lowdown | Unlock [archief] | 3 | 08-01-08 00:00 |
|
|