我有這樣的代碼:weekdaySymbol列表是否始終以任何國家/地區的星期日開始?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
NSLog(@"daysNames = %@", daysNames);
它輸出:
daysNames = (
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
)
我的問題是:
如果用戶是比美國以外的國家,比方說法國和俄羅斯,將陣列仍然以星期天(不是星期一)開始,還是我不應該依賴這個?
事情是我設置了鬧鐘。在視覺上,用戶從表格視圖中選擇,該表格視圖總是在第一行中有星期一。而且,如果設置了一天或者沒有設置,我會根據事實將0或1保留在NSMutableArray中。如果daysNames [0]總是與星期天相對應,我可以輕鬆地將所有元素向右移動一個位置,並且所有內容都將正確映射,否則當星期從星期一開始而非星期天開始時,我會遇到更多令人頭疼的問題。
這是完整的代碼,我寫這個(在美國,它完美的作品):
// Set the short days names
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
NSLog(@"daysNames = %@", daysNames);
// daysNames will become @"SUN MON TUE WED THU FRI SAT";
for (NSInteger i = 0; i < daysNames.count; i++) {
NSUInteger length = ((NSString *)daysNames[i]).length;
if (length > 3) {
length = 3;
}
daysNames[i] = [daysNames[i] substringToIndex:length].uppercaseString;
}
NSString *sundayShortName = daysNames[0];
// daysNames will become @"MON TUE WED THU FRI SAT SUN";
for (NSInteger i = 1; i < daysNames.count; i++) {
daysNames[i - 1] = daysNames[i];
}
daysNames[daysNames.count - 1] = sundayShortName;
NSMutableArray *alarmDaysShortNames = [NSMutableArray array];
for (NSInteger i = 0; i < alarm.alarmDays.count; i++) {
if ([alarm.alarmDays[i] boolValue] == YES) {
[alarmDaysShortNames addObject:daysNames[i]];
}
}
alarmCell.alarmDaysLabel.text = [alarmDaysShortNames componentsJoinedByString:@" "];
不,在法國,它將從Dimanche開始。另外,中國人在星期天有六七個不同的單詞,所以我不確定一個簡單的數組會不會削減它:-) – paxdiablo 2014-12-04 03:20:47
謝謝!我其實並不是指一個不同的日子名字。我知道這將基於語言進行設置。我想知道如果daysNames [0]仍然是星期天(或Dimanche等),但不是星期一(或Lunedi等)。 – ppalancica 2014-12-04 03:23:51
我的歉意,我誤解了這個問題。 – paxdiablo 2014-12-04 03:27:19