Se ho un UIDatePicker, e vorrei per impostare il minimo e il massimo intervallo di date per essere tra i trenta anni fa e trenta anni nel futuro, come avrei impostato che fino ?UIDatePicker, la massima impostazione e le date minime basate su di oggi data
risposta
Non testato, ma probabilmente si desidera qualcosa di simile.
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
m_datePicker.maximumDate = [NSDate date];
È possibile utilizzare questa riga di codice per impostare la data massima (Oggi).
e come posso nascondere la data> maximumDate? – alex
In realtà imposterà la data massima al minuto esatto in cui quella riga di codice viene eseguita –
Non consente di scegliere una data più tardi rispetto a oggi ma l'utente vede già le date successive. –
Si prega di provare questo codice iOS 8 +
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
Adattamento risposta di @ warrenm a Swift:
let currentDate = NSDate()
let dateComponents = NSDateComponents()
dateComponents.year = -13
let minDate = calendar.dateByAddingComponents(dateComponents, toDate: currentDate, options: NSCalendarOptions(rawValue: 0))
dateComponents.year = 30
let maxDate = calendar.dateByAddingComponents(dateComponents, toDate: currentDate, options: NSCalendarOptions(rawValue: 0))
dobPicker.maximumDate = maxDate
dobPicker.minimumDate = minDate
stava guardando questo problema oggi e si avvicinò con una soluzione a Swift 3 che si estende UIDatePicker.
extension UIDatePicker
{
/// set the date picker values and set min/max
/// - parameter date: Date to set the picker to
/// - parameter unit: (years, days, months, hours, minutes...)
/// - parameter deltaMinimum: minimum date delta in units
/// - parameter deltaMaximum: maximum date delta in units
/// - parameter animated: Whether or not to use animation for setting picker
func setDate(_ date:Date, unit:NSCalendar.Unit, deltaMinimum:Int, deltaMaximum:Int, animated:Bool)
{
setDate(date, animated: animated)
setMinMax(unit: unit, deltaMinimum: deltaMinimum, deltaMaximum: deltaMaximum)
}
/// set the min/max for the date picker (uses the pickers current date)
/// - parameter unit: (years, days, months, hours, minutes...)
/// - parameter deltaMinimum: minimum date delta in units
/// - parameter deltaMaximum: maximum date delta in units
func setMinMax(unit:NSCalendar.Unit, deltaMinimum:Int, deltaMaximum:Int)
{
if let gregorian = NSCalendar(calendarIdentifier:.gregorian)
{
if let minDate = gregorian.date(byAdding: unit, value: deltaMinimum, to: self.date)
{
minimumDate = minDate
}
if let maxDate = gregorian.date(byAdding: unit, value: deltaMaximum, to: self.date)
{
maximumDate = maxDate
}
}
}
}
Procedimento setDate
imposterà tre valori (data, minimo, massimo) dell'istanza UIDatePicker
.
setMinMax
imposta solo il minimo e il massimo. Il minimo e il massimo sono calcolati utilizzando la data corrente del raccoglitore.
unità possono essere i seguenti valori:
- .year
- .month
- .Day
- .hour
- .minute
- .second
Per impostare la data con pl noi e meno di trent'anni, il codice sarebbe:
var datePicker = UIDatePicker()
var date = Date()
datePicker.setDate(date, unit:.year, deltaMinimum:-30, deltaMaximum:30, animated:true)
La mia versione rapida 4 di @toddg è:
let currentDate = Date()
var dateComponents = DateComponents()
let calendar = Calendar.init(identifier: .gregorian)
dateComponents.year = -100
let minDate = calendar.date(byAdding: dateComponents, to: currentDate)
dateComponents.year = -13
let maxDate = calendar.date(byAdding: dateComponents, to: currentDate)
Funziona alla grande per me!
- 1. iOS 5 - Impostare la data minima di UIDatePicker su "oggi"
- 2. Come impostare UIDatePicker su una data iniziale diversa da "Oggi"
- 3. Java: Intervallo di date minime e massime
- 4. Calendario di Richfaces Date minime e massime
- 5. Come limitare la data massima di datepicker a oggi?
- 6. UIDatePicker - Su Data di modifica
- 7. Impostazione della data minima e massima sul calendario?
- 8. Data - Come localizzare/tradurre le stringhe di "oggi" e "domani"
- 9. rimuovere/nascondere le righe al di fuori dell'intervallo di date minimo/massimo di UIDatePicker?
- 10. Come posso impostare la data di UIDatePicker in un'altra data?
- 11. Prendi solo la data (tempo) da UIDatePicker
- 12. Determinare se la data di oggi è in un intervallo di due date su iOS
- 13. Come trovare la data massima
- 14. disabilita le date nel calendario jquery tra la data odierna e la data impostata
- 15. Come impostare la data minima e massima dinamicamente nel selettore di date dell'interfaccia utente jquery
- 16. Recupera data e ora da UIDatePicker iOS
- 17. Come ottenere la data minima e massima
- 18. Calcolo dell'età Oracle dalla data di nascita e oggi
- 19. Trova la data minima e massima nell'array usando LINQ?
- 20. Come disabilitare le date passate di oggi in bootstrap datetimepicker?
- 21. Data Time Picker - Impostazione di data e ora di apertura
- 22. Android DatePickerDialog: imposta la data minima e massima per la selezione
- 23. Voglio ottenere la data di oggi senza tempo
- 24. Come confrontare solo la parte della data quando la data di consegna è oggi
- 25. sas date - convertire oggi() nel formato yyyymmdd
- 26. UIDatePicker perde
- 27. Come bloccare le date in Fullcalendar oltre una certa data
- 28. Problema di fuso orario con UIDatePicker Data: 1 ora errata
- 29. jpql data confronto oggi
- 30. Convalida "dalla data" e "fino ad oggi" in Android
Non ha intenzione di rovinare se si dispone anche di colonna giorno e mese? Limiterà i mesi e i giorni alla data attuale, nella sua forma attuale. Come oggi è il 3 giugno 2015. Gli anni andranno bene. Giorno sarà bloccato al valore massimo 3 e il mese sarà bloccato al valore massimo giugno – NSNoob
No. Stai solo speculando ciecamente? – warrenm
No, l'ho provato in un'app a cui sto lavorando e ho affrontato il problema che ti ho detto. Alla fine ho dovuto mettere i controlli sulla data separatamente. – NSNoob