2 din 2
2
Comparare data din NSDate,fara timp
  [ Ignoră ]   [ # 16 ]
Avatar
RankRankRank
Member
Din: Bucuresti
Macuser din: 11.10.05

Exista functie built-in pentru calcul diferenta date (NSDateComponents fromDate toDate):

NSDate *now [NSDate date];
    
NSDate then [NSDate dateWithTimeInterval:-172800 sinceDate:now];
    
NSDateComponents *compo [[NSCalendar currentCalendar] components:NSDayCalendarUnit
                                                fromDate
:now
                                                 toDate
:then
                                                options
:0];
    
NSInteger days [compo day];
    
NSLog(@"Days diff: %d"days); 
Profil
 
  [ Ignoră ]   [ # 17 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

Am rezolvat intr-un final asa:

NSDate *myDate [dict objectForKey: @"date"];
            
NSDateComponents *myComponent [calendar componentsunitFlags fromDatemyDate];
            
NSDate *myDateFromComponent [calendar dateFromComponentsmyComponent];

            
NSDate *now [NSDate date];
            
NSDateComponents *nowComponent [calendar componentsunitFlags fromDatenow];
            
NSDate *nowDateFromComponent [calendar dateFromComponentsnowComponent];
            
            if(
[nowDateFromComponent comparemyDateFromComponent] == NSOrderedAscending)
                
[dict removeObjectForKey: @"overdue"];
            else
                
[dict setObject: @"overdue" forKey:@"overdue"]

La mine NSDate afisat in NSLog imi apare ca GMT,e sigur vreun bug.
Am testat si NSDate *tomorrow = [now dateByAddingTimeInterval: ( 8 * 60 * 60)]; iar cand compar datele apar diferite.
La ora actuala acum 14:06 + 8 ore imi da exact GMT + 2.

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
  [ Ignoră ]   [ # 18 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

ora actuala am vrut sa zic 16:06 smile

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
   
2 din 2
2