2010-03-14 9 views

risposta

7

NSDati contengono sia la data che l'ora. Da documenti:

Gli oggetti NSDate rappresentano un singolo punto nel tempo.

Il seguente esempio ha la data e ora correnti come valore minimo e il tempo di un'ora da ora come il valore massimo (per provarlo solo cadere nella viewDidLoad di qualsiasi UIViewController):

// Time right now 
NSDate *minDate = [NSDate new]; 
// One hour from now 
NSDate *maxDate = [[NSDate alloc] initWithTimeIntervalSinceNow:60*60]; 

UIDatePicker *picker = [UIDatePicker new]; 
[picker setDatePickerMode:UIDatePickerModeDateAndTime]; 
[picker setMinimumDate:minDate]; 
[picker setMaximumDate:maxDate]; 
[[self view] addSubview:picker]; 
[super viewDidLoad]; 

Ulteriori informazioni su NSDate sono disponibili su Dev Center.

+0

Grazie Paulo. Sì, sono a conoscenza di quanto sopra e gli oggetti MindDate e MaxDate di NSDate contengono il tempo, ma UIDatePicker sta solo impostando i limiti entro la data. In altre parole, se metto in guardia dalla data odierna alle 8 di mattina, mi impedisce di impostare la data su ieri, ma posso ancora scegliere un orario precedente ... 6:00 per esempio. – CBGrey

+0

È molto strano. Se si modifica minDate a un NSDate poche ore prima, non si dovrebbe essere in grado di selezionarne una precedente. Quello che succede nel mio caso quando seleziono 6 am è che il picker ritorna al minimo orario valido 8 am. Hai un esempio di codice? –

+1

Beh, sono felice di sentire che funziona come penso che dovrebbe. Non sono contento di pensare di avere un problema nel mio codice :) Fammi esaminare e vedere se riesco a estrarre un campione pertinente. Grazie per il tuo aiuto continuo. – CBGrey

1
NSDateFormatter *FormatDate = [[[NSDateFormatter alloc] init] autorelease]; 
[FormatDate setDateFormat:@"MMMM d y"]; 

NSString *date1=[FormatDate stringFromDate:[theDatePicker date]]; 
NSString *today=[FormatDate stringFromDate:[NSDate date]]; 
NSTimeInterval secondsPerDay = 24 * 60 * 60; 
NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay]; 
NSString *tommorow=[FormatDate stringFromDate:tomorrow]; 
[pickerViewPopup dismissWithClickedButtonIndex:0 animated:YES]; 
if ([date1 isEqualToString:today]||[date1 isEqualToString:tommorow]) { 
    NSDateFormatter *FormatDate = [[[NSDateFormatter alloc] init] autorelease]; 
    [FormatDate setDateFormat:@"MMM dd,yyyy"]; 
    currentdate.text = [FormatDate stringFromDate:[theDatePicker date]];