//
//  main.m
//  时间处理
//
//  Created by pj on 14-8-8.
//  Copyright (c) 2014年 pj. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
    // 返回时间戳,秒
//    long l = time(NULL);
//    printf("%u\n",l); // 1407513659
//    
//    // 当前时间
//    NSDate *date = [NSDate date];
//    NSLog(@"%@",date);
//    
//    // 返回以当前时间为基准,然后过了secs秒的时间
//    date = [NSDate dateWithTimeIntervalSinceNow:22];
//    NSLog(@"%@",date);
//    
//    // 返回以1970/01/01 GMT为基准,然后过了secs秒的时间
//    date = [NSDate dateWithTimeIntervalSince1970:22];
//    NSLog(@"%@",date);
//    
//    // 返回很多年以后的未来的某一天 4001-01-01 00:00:00 +0000
//    date = [NSDate distantFuture];
//    NSLog(@"%@",date);
//    
//    // 返回很多年以前的某一天
//    date = [NSDate distantPast]; // 0001-12-30 00:00:00 +0000
//    NSLog(@"%@",date);
//    
//    // 返回以目前的实例中保存的时间为基准,然后过了secs秒的时间
//    date = [date addTimeInterval:22];
//    NSLog(@"%@",date);
//    
//    // 与otherDate比较,相同返回YES
//    if ([[NSDate date] isEqualToDate:[NSDate date]]) {
//        NSLog(@"相同");
//    }
//    
//    NSDate *date1 = [NSDate date];
//    NSDate *date2= [NSDate date];
//    // 与anotherDate比较,返回较早的那个日期
//    
//    NSDate *d = [date1 earlierDate:date2];
//    NSLog(@"%@",d);
//    //- (NSDate *)laterDate:(NSDate *)anotherDate;
//    // 与anotherDate比较,返回较晚的那个日期
//    
//    
//    //NSDateFormatter
//    //声明一个格式化日期对象
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
//    //设置日期格式
    // w 返回当前年的星期
    // W 返回当前月的星期
    // a 返回上午还是下午
    // c 或者 e 应该是返回星期几
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // 年-月-日 小时:分钟:秒
//    //将时间转化成指定格式字符串
    NSString *dateString = [formatter stringFromDate:[NSDate date]];
    NSLog(@"%@",dateString);
//    
//    
//    //声明一个格式化日期对象
//    
//    NSDateFormatter *dateFor = [[NSDateFormatter alloc]init];
//    //设置日期格式
//    [dateFor setDateFormat:@"yyy-MM-dd HH:mm:ss"];
//    //给定字符串
//    NSString *dateStr = @"2008-08-08 20:00:00";
//    NSDate *date11 =[dateFor dateFromString:dateStr];
//    
//    NSLog(@"%@",date11);
//    
//    
//     NSTimeInterval time = [[NSDate date] timeIntervalSince1970];
//    long long int date3 = (long long int)time;
//    NSLog(@"%u",date3);
//    NSLog(@"date\n%d", date3); //1295322949
//    //把秒数转化成yyyy-MM-dd hh:mm:ss格式
//    NSDate *dd = [NSDate dateWithTimeIntervalSince1970:date3];
//    NSLog(@"d:%@",dd); //2011-01-18 03:55:49 +0000
//    
    NSLog(@"%@",[NSDate date]);
//    
    
    
    NSDate *date = [NSDate date];//这个是NSDate类型的日期,所要获取的年月日都放在这里;
    
    
    
    NSCalendar *cal = [NSCalendar currentCalendar];
    
    unsigned int unitFlags = NSYearCalendarUnit|NSMonthCalendarUnit|
    
    NSDayCalendarUnit;//这句是说你要获取日期的元素有哪些。获取年就要写NSYearCalendarUnit,获取小时就要写NSHourCalendarUnit,中间用|隔开;
    
    
    
    NSDateComponents *d = [cal components:unitFlags fromDate:date];//把要从date中获取的unitFlags标示的日期元素存放在NSDateComponents类型的d里面;
    
    //然后就可以从d中获取具体的年月日了;
    
    NSInteger year = [d year];
    
    NSInteger month = [d month];
    
    NSInteger day  =  [d day];
    
    NSInteger weekNumber = [d weekday]; //获取星期对应的长整形字符串
    
    NSLog(@"%ld",weekNumber);
    
    NSLog(@"%ld",year);
    
    NSLog(@"%ld",month);
    
    NSLog(@"%ld",day);
    
    return 0;
}