# DateTime + 1 ora

**URL:** <https://www.ruby-forum.com/t/datetime-1-ora/176872>\
**Category:** IT\
**Created:** [October 7, 2009, 11:39am UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872 "2009-10-07T11:39:18Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 11:39am UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/1 "2009-10-07T11:39:18Z")

</div>

Ciao,  
se sommo un’ora (=1/24 di giorno) ad un DateTime sembra che mi perda un  
secondo (almeno la prima volta):

require ‘date’  
dt = DateTime.new(2009, 1, 1)  
(0…5).each do |k|  
puts dt.strftime("%Y-%m-%d %H:%M:%S")  
dt+=1.0/24  
end

Result:  
2009-01-01 00:00:00  
2009-01-01 00:59:59  
2009-01-01 01:59:59  
2009-01-01 02:59:59  
2009-01-01 03:59:59

E’ un baco o sbaglio qualcosa?  
C’Ã¨ magari un altro metodo ad hoc?

Grazie, saluti  
i.

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 2:00pm UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/2 "2009-10-07T14:00:22Z")

</div>

Sorry, mi rispondo da solo.

Invece di sommare numeri con la virgola, Ã¨ piÃ¹ opportuno sommare numeri  
razionali. Per aggiungere un’ora:  
DateTime.new(2009,1,1)+Rational(1,24)

Aloha,  
i.

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 2:06pm UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/3 "2009-10-07T14:06:58Z")

</div>

Il 07 ottobre 2009 14.00, Iwan B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> Sorry, mi rispondo da solo.
> 
> Invece di sommare numeri con la virgola, è più opportuno sommare numeri  
> razionali. Per aggiungere un’ora:  
> DateTime.new(2009,1,1)+Rational(1,24)

In Rails (in particolare nella gemma activesupport) viene aggiunta  
tutta una serie di metodi a Numeric, per permettere di scrivere cose  
come 1.hours.ago, 3.hours + 4.minutes oppure 5.days.from\_now, che  
fanno storcere il naso a molti puristi ma sono di grande comodità  
(oltre che divertenti da leggere).

Magari t’interessa darci un’occhiata.

pietro

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 4:20pm UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/4 "2009-10-07T16:20:14Z")

</div>

Pietro G. wrote:

> Il 07 ottobre 2009 14.00, Iwan B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:
> 
> > Sorry, mi rispondo da solo.
> > 
> > Invece di sommare numeri con la virgola, Ã¨ piÃ¹ opportuno sommare numeri  
> > razionali. Per aggiungere un’ora:  
> > DateTime.new(2009,1,1)+Rational(1,24)

Grazie Iwan, bella dritta!

> In Rails (in particolare nella gemma activesupport) viene aggiunta  
> tutta una serie di metodi a Numeric, per permettere di scrivere cose  
> come 1.hours.ago,

E si puÃ² pure scrivere 1.hour.ago per non aver problemi di plurale. Si  
devono proprio esser divertiti a scrivere quella gemma 🙂

> 3.hours + 4.minutes oppure 5.days.from\_now, che  
> fanno storcere il naso a molti puristi ma sono di grande comoditÃ  
> (oltre che divertenti da leggere).

E fanno ammattire quando poi scrivi in Ruby senza Rails e non li hai a  
disposizione. Sembra che manchi qualcosa dal linguaggio…

Paolo

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 4:33pm UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/5 "2009-10-07T16:33:56Z")

</div>

> E fanno ammattire quando poi scrivi in Ruby senza Rails e non li hai a  
> disposizione. Sembra che manchi qualcosa dal linguaggio…

require ‘rubygems’  
require ‘activesupport’

😉

–  
Simone C.

Site & Blog: [http://www.simonecarletti.com](http://www.simonecarletti.com)  
Email: removed\_email\_address@domain.invalid  
LinkedIn: [http://linkedin.com/in/weppos](http://linkedin.com/in/weppos)  
Nick: weppos | Skype: weppos

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 6:04pm UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/6 "2009-10-07T18:04:42Z")

</div>

Il 07 ottobre 2009 17.36, Paolo M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

> Il che ci riporterebbe alla thread di qualche giorno fa sul se sia  
> meglio iniziare da Ruby o da Rails…

meglio partire con ruby e implementarsi da soli queste cose! 🙂

una delle prime cose che ho visto di ruby era un contest sul tema 99  
bottiglie di birra sul muro ([99-bottles-of-beer.net](http://99-bottles-of-beer.net)), e mi aveva  
colpito una versione in cui si scriveva una cosa tipo:

99.bottles :of =\> :beer  
98.bottles :of =\> :beer  
…

o qualcosa del genere…

pietro

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 7, 2009, 5:36pm UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/7 "2009-10-07T17:36:23Z")

</div>

Simone C. wrote:

> > E fanno ammattire quando poi scrivi in Ruby senza Rails e non li hai a  
> > disposizione. Sembra che manchi qualcosa dal linguaggio…
> 
> require ‘rubygems’  
> require ‘activesupport’
> 
> 😉

SÃ¬ lo so, ma la sorpresa fu tanta quando mi capitÃ² la prima volta e mi  
resi conto che quei metodi non erano del linguaggio.

Il che ci riporterebbe alla thread di qualche giorno fa sul se sia  
meglio iniziare da Ruby o da Rails…

Paolo

> –  
> Simone C.
> 
> Site & Blog: [http://www.simonecarletti.com](http://www.simonecarletti.com)  
> Email: removed\_email\_address@domain.invalid  
> LinkedIn: [http://linkedin.com/in/weppos](http://linkedin.com/in/weppos)  
> Nick: weppos | Skype: weppos

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 8, 2009, 12:58am UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/8 "2009-10-08T00:58:11Z")

</div>

L’avevo visto qualche tempo fÃ … non l’avevo mai eseguito perÃ²… perl Ã¨  
veramente magggggico 🙂

Paolo M. wrote:

> Le versioni in Ruby sono linkate a  
> [http://99-bottles-of-beer.net/language-ruby-670.html](http://99-bottles-of-beer.net/language-ruby-670.html)  
> Quella di cui scrivi forse Ã¨ nei commenti di una di loro.
> 
> Per quanto mi piaccia Ruby devo perÃ² concedere che come al solito Perl Ã¨  
> magico.  
> Provate ad eseguire [99 Bottles of Beer | Language Perl](http://99-bottles-of-beer.net/language-perl-737.html)  
> e ve ne accorgerete!
> 
> Paolo

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [October 8, 2009, 12:47am UTC](https://www.ruby-forum.com/t/datetime-1-ora/176872/9 "2009-10-08T00:47:33Z")

</div>

Le versioni in Ruby sono linkate a

> **[99 Bottles of Beer | Language Ruby](http://99-bottles-of-beer.net/language-ruby-670.html)**
>
> The song '99 bottles of beer' programmed in more than 600 different programming languages, from APL to BASIC, to Brainfuck, INTERCAL, FORTRAN, C++ or Java... This project is similiar to the Rosetta stone

Quella di cui scrivi forse Ã¨ nei commenti di una di loro.

Per quanto mi piaccia Ruby devo perÃ² concedere che come al solito Perl Ã¨  
magico.  
Provate ad eseguire [99 Bottles of Beer | Language Perl](http://99-bottles-of-beer.net/language-perl-737.html)  
e ve ne accorgerete!

Paolo

Pietro G. wrote:

> Il 07 ottobre 2009 17.36, Paolo M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
> scritto:
> 
> > Il che ci riporterebbe alla thread di qualche giorno fa sul se sia  
> > meglio iniziare da Ruby o da Rails…
> 
> meglio partire con ruby e implementarsi da soli queste cose! 🙂
> 
> una delle prime cose che ho visto di ruby era un contest sul tema 99  
> bottiglie di birra sul muro ([99-bottles-of-beer.net](http://99-bottles-of-beer.net)), e mi aveva  
> colpito una versione in cui si scriveva una cosa tipo:
> 
> 99.bottles :of =\> :beer  
> 98.bottles :of =\> :beer  
> …
> 
> o qualcosa del genere…
> 
> pietro
