• iPhone开发NSDate操作(转)


    //得到当前的日期 
    NSDate *date = [NSDate date]; 
    NSLog(@"date:%@",date); 
     
    //得到(24 * 60 * 60)即24小时之前的日期,dateWithTimeIntervalSinceNow: 
    NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(24 * 60 * 60)]; 
    NSLog(@"yesterday:%@",yesterday); 
     
    NSDateFormatter *formatter =[[[NSDateFormatter alloc] init] autorelease]; 
    NSDate *date = [NSDate date]; 
    [formatter setTimeStyle:NSDateFormatterMediumStyle]; 
    NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
    NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease]; 
    NSInteger unitFlags = NSYearCalendarUnit | 
    NSMonthCalendarUnit | 
    NSDayCalendarUnit | 
    NSWeekdayCalendarUnit | 
    NSHourCalendarUnit | 
    NSMinuteCalendarUnit | 
    NSSecondCalendarUnit; 
    //int week=0; 
    comps = [calendar components:unitFlags fromDate:date]; 
    int week = [comps weekday]; 
    int year=[comps year]; 
    int month = [comps month]; 
    int day = [comps day]; 
    //[formatter setDateStyle:NSDateFormatterMediumStyle]; 
    //This sets the label with the updated time. 
    int hour = [comps hour]; 
    int min = [comps minute]; 
    int sec = [comps second]; 
    NSLog(@"week%d",week); 
    NSLog(@"year%d",year); 
    NSLog(@"month%d",month); 
    NSLog(@"day%d",day); 
    NSLog(@"hour%d",hour); 
    NSLog(@"min%d",min); 
    NSLog(@"sec%d",sec); 
     
    //得到毫秒 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
    //[dateFormatter setDateFormat:@"hh:mm:ss"] 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; 
    NSLog(@"Date%@", [dateFormatter stringFromDate:[NSDate date]]); 
    [dateFormatter release]; 
     
    ========================================== 
    方法一 
     
    NSDate* toDate1 = [ [ NSDate alloc] initWithString:@"2520-9-26 17:10:00 +0600" ]; 
    NSTimeInterval distance = [ toDate1 timeIntervalSinceNow ]; 
    NSTimeInterval iDat = distance / ( 86400 ) ; 
    NSLog( @" From now to %@ diff: %f ", [toDate1 description ], iDat ); 
    [ toDate1 release ]; 
     
    方法二 
    NSDate* toDate   = [ [ NSDate alloc] initWithString:@"2009-9-29 0:0:00 +0600" ]; 
    NSDate* startDate   = [ [ NSDate alloc] init ]; 
    NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ]; 
     
    NSUInteger unitFlags =  NSHourCalendarUnit | NSMinuteCalendarUnit | 
    NSSecondCalendarUnit | NSDayCalendarUnit 
    | NSMonthCalendarUnit | NSYearCalendarUnit; 
     
    NSDateComponents *cps = [ chineseClendar components:unitFlags fromDate:startDate toDate:toDate options:0]; 
    NSInteger diffHour = [ cps hour ]; 
    NSInteger diffMin = [ cps minute ]; 
    NSInteger diffSec = [ cps second ]; 
    NSInteger diffDay = [ cps day ]; 
    NSInteger diffMon = [ cps month ]; 
    NSInteger diffYear = [ cps year ]; 
    NSLog( @" From Now to %@, diff: Years: %d Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d", 
    [toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec ); 
    [ toDate release ]; 
    [ startDate release ]; 
    [ chineseClendar release ]; 
    NSDate

    //得到当前的日期 www.2cto.com
    NSDate *date = [NSDate date];
    NSLog(@"date:%@",date);

    //得到(24 * 60 * 60)即24小时之前的日期,dateWithTimeIntervalSinceNow:
    NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(24 * 60 * 60)];
    NSLog(@"yesterday:%@",yesterday);

    NSDateFormatter *formatter =[[[NSDateFormatter alloc] init] autorelease];
    NSDate *date = [NSDate date];
    [formatter setTimeStyle:NSDateFormatterMediumStyle];
    NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
    NSInteger unitFlags = NSYearCalendarUnit |
    NSMonthCalendarUnit |
    NSDayCalendarUnit |
    NSWeekdayCalendarUnit |
    NSHourCalendarUnit |
    NSMinuteCalendarUnit |
    NSSecondCalendarUnit;
    //int week=0;
    comps = [calendar components:unitFlags fromDate:date];
    int week = [comps weekday];
    int year=[comps year];
    int month = [comps month];
    int day = [comps day];
    //[formatter setDateStyle:NSDateFormatterMediumStyle];
    //This sets the label with the updated time.
    int hour = [comps hour];
    int min = [comps minute];
    int sec = [comps second];
    NSLog(@"week%d",week);
    NSLog(@"year%d",year);
    NSLog(@"month%d",month);
    NSLog(@"day%d",day);
    NSLog(@"hour%d",hour);
    NSLog(@"min%d",min);
    NSLog(@"sec%d",sec);

    //得到毫秒
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    //[dateFormatter setDateFormat:@"hh:mm:ss"]
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
    NSLog(@"Date%@", [dateFormatter stringFromDate:[NSDate date]]);
    [dateFormatter release];

    ==========================================
    方法一

    NSDate* toDate1 = [ [ NSDate alloc] initWithString:@"2520-9-26 17:10:00 +0600" ];
    NSTimeInterval distance = [ toDate1 timeIntervalSinceNow ];
    NSTimeInterval iDat = distance / ( 86400 ) ;
    NSLog( @" From now to %@ diff: %f ", [toDate1 description ], iDat );
    [ toDate1 release ];

    方法二
    NSDate* toDate  = [ [ NSDate alloc] initWithString:@"2009-9-29 0:0:00 +0600" ];
    NSDate* startDate = [ [ NSDate alloc] init ];
    NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ];

    NSUInteger unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit |
    NSSecondCalendarUnit | NSDayCalendarUnit
    | NSMonthCalendarUnit | NSYearCalendarUnit;

    NSDateComponents *cps = [ chineseClendar components:unitFlags fromDate:startDate toDate:toDate options:0];
    NSInteger diffHour = [ cps hour ];
    NSInteger diffMin = [ cps minute ];
    NSInteger diffSec = [ cps second ];
    NSInteger diffDay = [ cps day ];
    NSInteger diffMon = [ cps month ];
    NSInteger diffYear = [ cps year ];
    NSLog( @" From Now to %@, diff: Years: %d Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d",
    [toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec );
    [ toDate release ];
    [ startDate release ];
    [ chineseClendar release ];

  • 相关阅读:
    day05
    day04
    day03
    day02
    一个球从100m高度自由下落,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高
    有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,... 求出这个数列的前20项之和
    输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3
    求和k(1到100)+k*k(1到50)+1/k(1到10)
    求Sn=a+aa+aaa+...+aa..a(n个a)之值,其中a是一个数字,n表示a的位数,例如:2+22+222+2222+22222(n=5),n由键盘输入
    求1!+2!+3!+4!+...+20!
  • 原文地址:https://www.cnblogs.com/lzjsky/p/2966121.html
Copyright © 2020-2023  润新知