Iphone 如何使用当前工作日填充UIPicker+;日期,

Iphone 如何使用当前工作日填充UIPicker+;日期,,iphone,ios4,Iphone,Ios4,我正在寻找一些代码,允许我的uipicker像这样填充 我们在这里讨论两个部分。第一个组件需要日期 我能处理的第二个部件 |20日星期三下午2点 |21日星期四下午1点 |等等 我可以处理第二个组件,只是找不到任何示例代码来格式化第一个组件。我知道我需要先确定今天,然后确定日期。。然后从那里构建,但希望有人可能有一些类似的示例代码。 任何帮助都将不胜感激 以下内容将为您提供日期名称和日期: NSDateFormatter *dateFormatter = [[NSDateFormatter al

我正在寻找一些代码,允许我的uipicker像这样填充 我们在这里讨论两个部分。第一个组件需要日期 我能处理的第二个部件

|20日星期三下午2点 |21日星期四下午1点
|等等

我可以处理第二个组件,只是找不到任何示例代码来格式化第一个组件。我知道我需要先确定今天,然后确定日期。。然后从那里构建,但希望有人可能有一些类似的示例代码。
任何帮助都将不胜感激

以下内容将为您提供日期名称和日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"EEEE d"]; // name of the day and day number dateString = [self.dateFormatter stringFromDate: aDate]; // Monday 20 [dateFormatter release]; NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@“EEEE d”];//日期名称和日期编号 dateString=[self.dateFormatter stringFromDate:aDate];//星期一20 [日期格式化程序发布];
以下将为您提供日期名称和日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"EEEE d"]; // name of the day and day number dateString = [self.dateFormatter stringFromDate: aDate]; // Monday 20 [dateFormatter release]; NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@“EEEE d”];//日期名称和日期编号 dateString=[self.dateFormatter stringFromDate:aDate];//星期一20 [日期格式化程序发布];
因为找不到任何其他方法或更好的方法。我把这些放在一起。它正在创建一个格式化日期数组,就像我想要的那样。这并不漂亮,但我找不到更好的方法。你可能认为FOR循环会更容易设置格式化日期的最后2个字符,但事实证明这有它的怪癖,我不想花一个小时来纠正它,所以我采取了简单而丑陋的方法

下面的代码生成一个格式化的日期数组,如下所示:
星期三5日
星期四6日
星期五7日
等等……
从今天的日期开始

- (void)createDatesForPicker {


    daysForPicker = [[NSMutableArray alloc] initWithCapacity:0];
    formatedDaysForPicker = [[NSMutableArray alloc] initWithCapacity:0];

    //get todays Day & Date
    NSDate *today1 = [NSDate date];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"EEEE dd"];

    //change how many days out you want to go here I am going 14 days out
    for (int i=0; i<14; i++){

        NSCalendar *gregorian11 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  

        NSDateComponents *components1 = [gregorian11 components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today1];
        [components1 setDay:([components1 day]+i)];

        NSDate *beginningOfWeek1 = [gregorian11 dateFromComponents:components1];
        NSDateFormatter *dateFormat_weekend = [[NSDateFormatter alloc] init];
        [dateFormat_weekend setDateFormat:@"EEEE dd"];
        NSString *dateString_first = [dateFormat_weekend stringFromDate:beginningOfWeek1];

        // unformatted dates array
        [daysForPicker addObject:dateString_first];

    }

    // now we have all the days and date, so lets format them so they look good 
    for (int i=0; i<[daysForPicker count];i++) {
        NSString * currentDay = [NSString stringWithFormat:@"%@",[daysForPicker objectAtIndex:i]];

        //we have date now look at 2nd to last digit and check if it is a zero, if so remove it.
        NSUInteger count = [currentDay length]-1;
        NSRange r = NSMakeRange( count,1 );
        NSString * lastChar = [currentDay substringWithRange:r];



        if ([lastChar isEqual:@"0"] == TRUE ) {
            //replace it with nothing
        }
        else {
            //not a zero at the end so we are good to remove all zeros
            currentDay = [currentDay stringByReplacingOccurrencesOfString:@"0" withString:@""]; 
        }

        //used later for date formatting
        NSUInteger count2 = [currentDay length]-2;
        NSRange r2 = NSMakeRange( count2,2 );
        NSString * dateDigits = [currentDay substringWithRange:r2];

        if ([dateDigits isEqual:@" 1"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"st"];
        }
        if ([dateDigits isEqual:@" 2"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"nd"];
        }
        if ([dateDigits isEqual:@" 3"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"rd"];
        }
        if ([dateDigits isEqual:@" 4"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 5"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 6"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 7"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 8"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 9"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"10"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"11"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"12"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"13"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"14"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"15"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"16"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"17"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"18"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"19"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"20"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"21"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"st"];
        }
        if ([dateDigits isEqual:@"22"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"nd"];
        }
        if ([dateDigits isEqual:@"23"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"rd"];
        }
        if ([dateDigits isEqual:@"24"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"25"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"26"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"27"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"28"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"29"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"30"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"31"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"st"];
        }


        // add formated string to array
        [formatedDaysForPicker addObject:currentDay];

    }



}
-(void)createDatesForPicker{
daysForPicker=[[NSMutableArray alloc]initWithCapacity:0];
FormattedDaysForPicker=[[NSMutableArray alloc]initWithCapacity:0];
//获取今天的日期和日期
NSDate*today1=[NSDate-date];
NSDateFormatter*dateFormat=[[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@“EEEE dd”];
//改变你要出去多少天我要出去14天

对于(int i=0;i因为找不到任何其他方法或更好的方法。我把它放在一起。它正在创建一个格式化日期数组,就像我想要的那样。它并不漂亮,但我找不到更好的方法。你可能会认为For循环更容易设置格式化日期的最后2个字符,但事实证明确实如此它的怪癖,我不想花一个小时试图纠正它,所以我采取了简单的丑陋的方式

下面的代码生成一个格式化的日期数组,如下所示:
星期三5日
星期四6日
星期五7日
等等……
从今天的日期开始

- (void)createDatesForPicker {


    daysForPicker = [[NSMutableArray alloc] initWithCapacity:0];
    formatedDaysForPicker = [[NSMutableArray alloc] initWithCapacity:0];

    //get todays Day & Date
    NSDate *today1 = [NSDate date];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"EEEE dd"];

    //change how many days out you want to go here I am going 14 days out
    for (int i=0; i<14; i++){

        NSCalendar *gregorian11 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  

        NSDateComponents *components1 = [gregorian11 components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today1];
        [components1 setDay:([components1 day]+i)];

        NSDate *beginningOfWeek1 = [gregorian11 dateFromComponents:components1];
        NSDateFormatter *dateFormat_weekend = [[NSDateFormatter alloc] init];
        [dateFormat_weekend setDateFormat:@"EEEE dd"];
        NSString *dateString_first = [dateFormat_weekend stringFromDate:beginningOfWeek1];

        // unformatted dates array
        [daysForPicker addObject:dateString_first];

    }

    // now we have all the days and date, so lets format them so they look good 
    for (int i=0; i<[daysForPicker count];i++) {
        NSString * currentDay = [NSString stringWithFormat:@"%@",[daysForPicker objectAtIndex:i]];

        //we have date now look at 2nd to last digit and check if it is a zero, if so remove it.
        NSUInteger count = [currentDay length]-1;
        NSRange r = NSMakeRange( count,1 );
        NSString * lastChar = [currentDay substringWithRange:r];



        if ([lastChar isEqual:@"0"] == TRUE ) {
            //replace it with nothing
        }
        else {
            //not a zero at the end so we are good to remove all zeros
            currentDay = [currentDay stringByReplacingOccurrencesOfString:@"0" withString:@""]; 
        }

        //used later for date formatting
        NSUInteger count2 = [currentDay length]-2;
        NSRange r2 = NSMakeRange( count2,2 );
        NSString * dateDigits = [currentDay substringWithRange:r2];

        if ([dateDigits isEqual:@" 1"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"st"];
        }
        if ([dateDigits isEqual:@" 2"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"nd"];
        }
        if ([dateDigits isEqual:@" 3"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"rd"];
        }
        if ([dateDigits isEqual:@" 4"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 5"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 6"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 7"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 8"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@" 9"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"10"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"11"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"12"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"13"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"14"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"15"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"16"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"17"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"18"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"19"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"20"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"21"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"st"];
        }
        if ([dateDigits isEqual:@"22"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"nd"];
        }
        if ([dateDigits isEqual:@"23"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"rd"];
        }
        if ([dateDigits isEqual:@"24"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"25"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"26"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"27"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"28"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"29"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"30"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"th"];
        }
        if ([dateDigits isEqual:@"31"] == TRUE) {
            currentDay = [currentDay stringByAppendingString:@"st"];
        }


        // add formated string to array
        [formatedDaysForPicker addObject:currentDay];

    }



}
-(void)createDatesForPicker{
daysForPicker=[[NSMutableArray alloc]initWithCapacity:0];
FormattedDaysForPicker=[[NSMutableArray alloc]initWithCapacity:0];
//获取今天的日期和日期
NSDate*today1=[NSDate-date];
NSDateFormatter*dateFormat=[[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@“EEEE dd”];
//改变你要出去多少天我要出去14天

对于(int i=0;我感谢你。我早些时候发现了这个,并花了一个小时对我试图做的事情进行格式化。我已经发布了它供其他人使用。谢谢你。我早些时候发现了这个,并花了一个小时对我试图做的事情进行格式化。我已经发布了它供其他人使用。我回答了我自己下面的问题,代码doe这就是我在这里发布的内容。它很难看但很有效!!我回答了下面我自己的问题,代码就是我在这里发布的。它很难看但很有效!!检查ghkit的gh_Orinalizeen方法以更容易地进行排序。检查ghkit的gh_Orinalizeen方法以更容易地进行排序。