ho questo codice:L'elenco dei giorni della settimana inizia sempre con la domenica in qualsiasi paese?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
NSLog(@"daysNames = %@", daysNames);
emette:
daysNames = (
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
)
La mia domanda è:
Se l'utente si trova in un paese diverso da quello degli Stati Uniti, diciamo la Francia o la Russia, sarà l'array inizia ancora con la domenica (non il lunedì) o non dovrei fare affidamento su questo?
Il fatto è che ho impostato giorni di allarme. Visivamente, l'utente sceglie da una vista tabella, che ha sempre lunedì nella prima riga. E mantengo 0 o 1 in un NSMutableArray in base al fatto se il giorno è impostato o meno. Se daysNames [0] corrisponde sempre alla domenica, posso spostare facilmente tutti gli elementi di una posizione a destra, e tutto verrà mappato correttamente, altrimenti ho qualche altro mal di testa che riguarda un altro caso quando la settimana inizia con il lunedì, non con la domenica.
Questo è il codice completo che ho scritto per questo (in Stati Uniti funziona perfettamente):
// 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:@" "];
No, in Francia, sarebbe iniziato con Dimanche. Inoltre, i cinesi hanno sei o sette parole differenti per domenica quindi non sono sicuro che un semplice array la taglierà :-) – paxdiablo
Grazie! In realtà non intendevo un nome diverso per il giorno. So che verrà impostato in base alla lingua. Mi chiedo se daysNames [0] sarà ancora domenica (o Dimanche ecc.) Ma non lunedì (o Lunedi ecc.). – ppalancica
Le mie scuse, ho frainteso la domanda. – paxdiablo