Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 获取一周中的日期数组,并引用当前日期_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 获取一周中的日期数组,并引用当前日期

Iphone 获取一周中的日期数组,并引用当前日期,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,有没有一种方法可以根据当前日期获取一周内的日期数组?能否请您检查一下这些代码 NSDate *startDate = ...; NSDate *endDate = ...; unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit; NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate toDate:endDate opt

有没有一种方法可以根据当前日期获取一周内的日期数组?

能否请您检查一下这些代码

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];

这是苹果公司的一个简单例子

你能把这个代码通读一遍吗

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];

这是苹果公司的一个简单例子

试试这个,我觉得很好用。 -(NSMutableArray*)获取工作日{

    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;
}
NSDate*today=[NSDate-date];
NSCalendar*格里高利=[[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*工作日组件=
[公历成分:(NSDayCalendarUnit | NSWeekdayCalendarUnit)fromDate:today];
NSInteger日=[工作日];
NSInteger weekday=[weekdayComponents weekday];
int i=(int)工作日;
int开始,结束;
如果(i==7)
{
开始=6;
结束=0;
}
else如果(i==6)
{
开始=5;
结束=1;
}
else如果(i==5)
{
开始=4;
结束=2;
}
else如果(i==4)
{
开始=3;
结束=3;
}
else如果(i==3)
{
开始=2;
结束=4;
}
else如果(i==2)
{
开始=1;
结束=5;
}
else如果(i==1)
{
开始=0;
结束=6;
}
NSDate*cdate=[NSDate-date];
NSDateFormatter*df=[[NSDateFormatter alloc]init];
[df setDateFormat:@“dd/MM/yyyy EEEE”];
NSMUTABLEARRY*WeekdatesAR=[[NSMUTABLEARRY alloc]init];
对于(开始;开始>0;开始--)
{
NSDate*FirstDate=[cdate ADDTIMETERVAL:-(86400)*开始];
NSString*str=[df stringFromDate:FirstDate];
[Weekdataser addObject:str];
}

对于(inti=0;i试试这个,它对我来说很好用。 -(NSMutableArray*)获取工作日{

    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;
}
NSDate*today=[NSDate-date];
NSCalendar*格里高利=[[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*工作日组件=
[公历成分:(NSDayCalendarUnit | NSWeekdayCalendarUnit)fromDate:today];
NSInteger日=[工作日];
NSInteger weekday=[weekdayComponents weekday];
int i=(int)工作日;
int开始,结束;
如果(i==7)
{
开始=6;
结束=0;
}
else如果(i==6)
{
开始=5;
结束=1;
}
else如果(i==5)
{
开始=4;
结束=2;
}
else如果(i==4)
{
开始=3;
结束=3;
}
else如果(i==3)
{
开始=2;
结束=4;
}
else如果(i==2)
{
开始=1;
结束=5;
}
else如果(i==1)
{
开始=0;
结束=6;
}
NSDate*cdate=[NSDate-date];
NSDateFormatter*df=[[NSDateFormatter alloc]init];
[df setDateFormat:@“dd/MM/yyyy EEEE”];
NSMUTABLEARRY*WeekdatesAR=[[NSMUTABLEARRY alloc]init];
对于(开始;开始>0;开始--)
{
NSDate*FirstDate=[cdate ADDTIMETERVAL:-(86400)*开始];
NSString*str=[df stringFromDate:FirstDate];
[Weekdataser addObject:str];
}
对于(int i=0;i),这可能会帮助您。