【问题标题】:Get an array of dates in a week with reference of current date参考当前日期获取一周内的日期数组
【发布时间】:2011-06-14 08:00:09
【问题描述】:

有没有办法参考当前日期获取一周内的日期数组?

【问题讨论】:

标签: iphone objective-c cocoa-touch


【解决方案1】:

请你看一下这段代码,

NSDate *startDate = ...;
NSDate *endDate = ...;
unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate  toDate:endDate  options:0];
int months = [comps month];
int days = [comps day];

这是来自 Apple 的一个简单示例。 for more details

【讨论】:

    【解决方案2】:

    试试这对我来说很好用。 -(NSMutableArray *) getWeekDays{

        NSDate *today = [NSDate date];
    
        NSCalendar *gregorian = [[NSCalendar alloc]
    
                                 initWithCalendarIdentifier:NSGregorianCalendar];
    
        NSDateComponents *weekdayComponents =
    
        [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];
    
        NSInteger day = [weekdayComponents day];
    
        NSInteger weekday = [weekdayComponents weekday];
    
        int i=(int)weekday;
        int start,end;
        if(i==7)
        {
            start=6;
            end=0;
        }
        else if(i==6)
        {
    
            start=5;
            end=1;
        }
    
        else if(i==5)
        {
    
            start=4;
            end=2;
        }
    
        else if(i==4)
        {
    
            start=3;
            end=3;
        }
        else if(i==3)
        {
    
            start=2;
            end=4;
        }
    
    
        else if(i==2)
        {
    
            start=1;
            end=5;
        }
    
        else if(i==1)
        {
    
            start=0;
            end=6;
        }
    
    
        NSDate *cdate=[NSDate date];
        NSDateFormatter *df=[[NSDateFormatter alloc] init];
        [df setDateFormat:@"dd/MM/yyyy EEEE"];
        NSMutableArray *WeekDatesArr=[[NSMutableArray alloc] init];
    
        for(start;start>0;start--)
        {
            NSDate *FirstDate=[cdate addTimeInterval:-(86400)*start];
            NSString *str=[df stringFromDate:FirstDate];
            [WeekDatesArr addObject:str];
        }
        for(int i=0;i<=end;i++)
        {
            NSDate *LastDate=[cdate addTimeInterval:(86400)*i];
            NSString *str1=[df stringFromDate:LastDate];
            NSLog(@"Str %@ ",str1);
            [WeekDatesArr addObject:str1];
        }
        NSLog(@"Dates Description in week %@",WeekDatesArr);  
        return WeekDatesArr;
    }
    

    干杯

    【讨论】:

      猜你喜欢
      • 2023-02-08
      • 2021-03-30
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      相关资源
      最近更新 更多