Forum: Italian Ruby user group Manipolazione date

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
52a410feecbdbb69ba5769fc6ddcb10f?d=identicon&s=25 Roger 83 (rogero83)
on 2007-06-07 10:51
Ciao Raga.

Come si possono validare le date ... mi spiego meglio nel model voglio
che una data sia successiva ad un altra.
E vorrei anche controllare che la data esista! ;-)

Help.
Aea9ee14e387a68f5cd63048a0ba9266?d=identicon&s=25 David Palm (Guest)
on 2007-06-07 11:16
(Received via mailing list)
Non sono sicuro di aver capito.
Hai una data (oggetto Date? o stringa? input dell'utente?) e vuoi
calcolare quella successiva?

d = Date.today

next_day = d+1

next_day.to_s
=> "2007-06-08"

:-)
52a410feecbdbb69ba5769fc6ddcb10f?d=identicon&s=25 Roger 83 (rogero83)
on 2007-06-07 11:34
David Palm wrote:
> Non sono sicuro di aver capito.
> Hai una data (oggetto Date? o stringa? input dell'utente?) e vuoi
> calcolare quella successiva?
>
> d = Date.today
>
> next_day = d+1
>
> next_day.to_s
> => "2007-06-08"
>
> :-)

Ok, mi spiego meglio.
Ti faccio un esempio stò facendo un pannello di amministrazione e da
form vengono inserite 2 date (quindi menù tendina per giorno mese e
anno) inizio e fine.
Voglio verificare che la data sia corretta (tipo voglio un errore per il
30 febbraio) e poi voglio verificare che

data fine > data inizio
Aea9ee14e387a68f5cd63048a0ba9266?d=identicon&s=25 David Palm (Guest)
on 2007-06-07 11:50
(Received via mailing list)
Ok. La comparazione è facile. Da IRB:

 >> d1 = Date.today
=> #<Date: 4908517/2,0,2299161>
 >> d2 = 3.weeks.ago.to_date
=> #<Date: 4908475/2,0,2299161>
 >> d1
=> #<Date: 4908517/2,0,2299161>
 >> d1.to_s
=> "2007-06-07"
 >> d2.to_s
=> "2007-05-17"
 >> d1 > d2
=> true
 >> d2 > d1
=> false

La validità.
Vorrai forse usare Date#valid_civil?, descritto qui:
http://www.ruby-doc.org/core/classes/Date.html#M000648

C'è anche un plugin che potrebbe venirti utile qui:
http://www.railsonwave.com/railsonwave/2006/12/13/...

Ma rammentami: quando la data ti viene dal form, che tipo di oggetto è?
Una stringa tipo "2007-06-06"?

Time ha un metodo "parse" che fa questa cosa buffa:

 >> Time.parse("2007-02-30")
=> Fri Mar 02 00:00:00 +0100 2007

Vabbè, ti tocca leggere un po' e fare delle prove! IRB è tuo amico,
rammentalo!
7bac9e5a826baf1d4f8a4a63bf026301?d=identicon&s=25 Michele Casari (miclab)
on 2007-06-07 12:03
Premetto che sono nuovo di Ruby. Se stai utilizzando Rails perché non
sfrutti javascript?
52a410feecbdbb69ba5769fc6ddcb10f?d=identicon&s=25 Roger 83 (rogero83)
on 2007-06-07 19:12
>  >> d1 > d2
> => true
>  >> d2 > d1
> => false
>

Grazie mille è + facile a dirsi che a farsi ... i form del rail
restituiscono la data formattata correttamente e si possono fare le
comparazioni.

ora ... SEMPRE + DIFFICILE

ho visto i link che mi hai consigliato, ma non ho capito come si
inseriscono le librerie di gestione delle date.
This topic is locked and can not be replied to.