Ios 获取一周的工作日和日期
我正在开发一个需要创建每周日历的应用程序。为此,我需要本周的天数和日期(星期日,9月30日,星期一,10月1日,星期二,10月2日等)。有人能指导我如何做到这一点吗 问候Ios 获取一周的工作日和日期,ios,swift,nsdate,Ios,Swift,Nsdate,我正在开发一个需要创建每周日历的应用程序。为此,我需要本周的天数和日期(星期日,9月30日,星期一,10月1日,星期二,10月2日等)。有人能指导我如何做到这一点吗 问候 Pankaj如果我理解正确,要获得预期的日期格式,您可以将NSDateFormatter与以下格式化程序一起使用: NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init]; dateFormatter.dateFormat:@“EEEE,MMM d”; NSLog
Pankaj如果我理解正确,要获得预期的日期格式,您可以将
NSDateFormatter
与以下格式化程序一起使用:
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
dateFormatter.dateFormat:@“EEEE,MMM d”;
NSLog(@“%@,[dateFormatter stringFromDate:[NSDate date]])代码>
您还可以设置日期格式化程序的区域设置,以获取指定语言的工作日:
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@“en_GB”]代码>
有关更多详细信息,请参阅如果我理解正确,要获得预期的日期格式,您可以将NSDateFormatter
与以下格式化程序一起使用:
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
dateFormatter.dateFormat:@“EEEE,MMM d”;
NSLog(@“%@,[dateFormatter stringFromDate:[NSDate date]])代码>
您还可以设置日期格式化程序的区域设置,以获取指定语言的工作日:
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@“en_GB”]代码>
欲了解更多详细信息,请参考这里有一个简单的函数,可提取本周所有日期的日期,从本周的星期日到星期六
func formattedDaysInThisWeek() -> [String] {
// create calendar
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
// today's date
let today = NSDate()
let todayComponent = calendar.components([.Day, .Month, .Year], fromDate: today)
// range of dates in this week
let thisWeekDateRange = calendar.rangeOfUnit(.Day, inUnit:.WeekOfMonth, forDate:today)
// date interval from today to beginning of week
let dayInterval = thisWeekDateRange.location - todayComponent.day
// date for beginning day of this week, ie. this week's Sunday's date
let beginningOfWeek = calendar.dateByAddingUnit(.Day, value: dayInterval, toDate: today, options: .MatchNextTime)
var formattedDays: [String] = []
for i in 0 ..< thisWeekDateRange.length {
let date = calendar.dateByAddingUnit(.Day, value: i, toDate: beginningOfWeek!, options: .MatchNextTime)!
formattedDays.append(formatDate(date))
}
return formattedDays
}
func formatDate(date: NSDate) -> String {
let format = "EEE MMMdd"
let formatter = NSDateFormatter()
formatter.dateFormat = format
return formatter.stringFromDate(date)
}
这里有一个简单的函数,可以提取本周所有日期的日期,从本周的星期日到星期六
func formattedDaysInThisWeek() -> [String] {
// create calendar
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
// today's date
let today = NSDate()
let todayComponent = calendar.components([.Day, .Month, .Year], fromDate: today)
// range of dates in this week
let thisWeekDateRange = calendar.rangeOfUnit(.Day, inUnit:.WeekOfMonth, forDate:today)
// date interval from today to beginning of week
let dayInterval = thisWeekDateRange.location - todayComponent.day
// date for beginning day of this week, ie. this week's Sunday's date
let beginningOfWeek = calendar.dateByAddingUnit(.Day, value: dayInterval, toDate: today, options: .MatchNextTime)
var formattedDays: [String] = []
for i in 0 ..< thisWeekDateRange.length {
let date = calendar.dateByAddingUnit(.Day, value: i, toDate: beginningOfWeek!, options: .MatchNextTime)!
formattedDays.append(formatDate(date))
}
return formattedDays
}
func formatDate(date: NSDate) -> String {
let format = "EEE MMMdd"
let formatter = NSDateFormatter()
formatter.dateFormat = format
return formatter.stringFromDate(date)
}
这周你就需要它吗?如果是这样,下面是一些您应该能够使用的代码:
- (NSString *)stringOfDatesOfThisWeek {
NSArray *datesOfThisWeek = [self dateOfTheWeek:[NSDate date]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE MMM d"];
NSMutableString *dateStringForThisWeek = [[NSMutableString alloc] initWithString:[formatter stringFromDate:[datesOfThisWeek firstObject]]];
for (int i = 1; i < datesOfThisWeek.count; i++) {
[dateString appendFormat:@", %@", [formatter stringFromDate:[datesOfThisWeek objectAtIndex:i]]];
}
}
- (NSArray *)datesOfTheWeek:(NSDate *)todaysDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger weekNumber = [[calendar components: NSWeekCalendarUnit fromDate:todaysDate] week];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:todaysDate];
[comp setWeek:weekNumber]; //Week number.
NSMutableArray *dates = [NSMutableArray new];
for (int i = 0; i < 7; i++) {
[comp setWeekday:1]; //First day of the week. Change it to 7 to get the last date of the week
NSDate *resultDate = [gregorian dateFromComponents:comp];
[dates addObject:resultDate];
}
return dates;
}
-(NSString*)本周的日期字符串{
NSArray*datesOfThisWeek=[每周的自日期:[NSDate date]];
NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init];
[格式化程序setDateFormat:@“EEE MMM d”];
NSMutableString*dateStringForThisWeek=[[NSMutableString alloc]initWithString:[formatter stringFromDate:[datesOfThisWeek firstObject]];
对于(int i=1;i
在没有Xcode的情况下输入所有这些之后,我意识到这个问题是关于Swift的。我会留下它,以防有人想要一个客观的C答案,却无意中发现了这个问题。这周你需要它吗?如果是这样,下面是一些您应该能够使用的代码:
- (NSString *)stringOfDatesOfThisWeek {
NSArray *datesOfThisWeek = [self dateOfTheWeek:[NSDate date]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE MMM d"];
NSMutableString *dateStringForThisWeek = [[NSMutableString alloc] initWithString:[formatter stringFromDate:[datesOfThisWeek firstObject]]];
for (int i = 1; i < datesOfThisWeek.count; i++) {
[dateString appendFormat:@", %@", [formatter stringFromDate:[datesOfThisWeek objectAtIndex:i]]];
}
}
- (NSArray *)datesOfTheWeek:(NSDate *)todaysDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger weekNumber = [[calendar components: NSWeekCalendarUnit fromDate:todaysDate] week];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:todaysDate];
[comp setWeek:weekNumber]; //Week number.
NSMutableArray *dates = [NSMutableArray new];
for (int i = 0; i < 7; i++) {
[comp setWeekday:1]; //First day of the week. Change it to 7 to get the last date of the week
NSDate *resultDate = [gregorian dateFromComponents:comp];
[dates addObject:resultDate];
}
return dates;
}
-(NSString*)本周的日期字符串{
NSArray*datesOfThisWeek=[每周的自日期:[NSDate date]];
NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init];
[格式化程序setDateFormat:@“EEE MMM d”];
NSMutableString*dateStringForThisWeek=[[NSMutableString alloc]initWithString:[formatter stringFromDate:[datesOfThisWeek firstObject]];
对于(int i=1;i
在没有Xcode的情况下输入所有这些之后,我意识到这个问题是关于Swift的。我会留下它,以防有人想要一个Objective-C答案,却无意中发现了这个问题。更新了@fennelouski的Objective-C代码:
- (NSString *)stringOfDatesOfThisWeek {
NSArray *datesOfThisWeek = [self datesOfTheWeek:[NSDate date]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE MMM d"];
NSMutableString *dateStringForThisWeek = [[NSMutableString alloc] initWithString:[formatter stringFromDate:[datesOfThisWeek firstObject]]];
for (int i = 1; i < datesOfThisWeek.count; i++) {
[dateStringForThisWeek appendFormat:@", %@", [formatter stringFromDate:[datesOfThisWeek objectAtIndex:i]]];
}
return dateStringForThisWeek;
}
- (NSArray *) datesOfTheWeek:(NSDate *)todaysDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger weekNumber = [[calendar components: NSCalendarUnitWeekOfMonth fromDate:todaysDate] weekOfMonth];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *comp = [gregorian components:NSCalendarUnitYear fromDate:todaysDate];
[comp setWeekOfMonth:weekNumber]; //Week number.
NSMutableArray *dates = [NSMutableArray new];
for (int i = 0; i < 7; i++) {
[comp setWeekday:1]; //First day of the week. Change it to 7 to get the last date of the week
NSDate *resultDate = [gregorian dateFromComponents:comp];
[dates addObject:resultDate];
}
return dates;
}
-(NSString*)本周的日期字符串{
NSArray*datesOfThisWeek=[self datesOfTheWeek:[NSDate date]];
NSDateFormatter*格式化程序=[[NSDateFormatter alloc]init];
[格式化程序setDateFormat:@“EEE MMM d”];
NSMutableString*dateStringForThisWeek=[[NSMutableString alloc]initWithString:[formatter stringFromDate:[datesOfThisWeek firstObject]];
对于(int i=1;i