[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Days in a year

Pål Bergström

10/27/2008 2:12:00 PM

How do I get number of days in a year?
--
Posted via http://www.ruby-....

9 Answers

Brian Candler

10/27/2008 2:18:00 PM

0

Pål Bergström wrote:
> How do I get number of days in a year?

Enter "number of days in a year" into Google and you'll get some useful
results.

The very first hit gives you
http://en.wikipedia.org/wiki/Leap_year...

Google is your friend.
--
Posted via http://www.ruby-....

Hélio Rocha

10/27/2008 2:36:00 PM

0

Just check if the year is leap. In google u'll find something like:

int __isleap <javascript:searchRef('__isleap')>(int
year<javascript:searchRef('year')>)
{
/* every fourth year is a leap year except for century years that are
* not divisible by 400. */
/* return (year % 4 =3D=3D 0 && (year % 100 !=3D 0 || year % 400 =3D=3D 0)=
); */
return (!(year <javascript:searchRef('year')>%4) &&
((year<javascript:searchRef('year')>%100)
|| !(year <javascript:searchRef('year')>%400)));
}

On Mon, Oct 27, 2008 at 2:12 PM, P=E5l Bergstr=F6m <pal@palbergstrom.com> w=
rote:

> How do I get number of days in a year?
> --
> Posted via http://www.ruby-....
>
>

Todd Benson

10/27/2008 2:45:00 PM

0

On Mon, Oct 27, 2008 at 9:12 AM, P=E5l Bergstr=F6m <pal@palbergstrom.com> w=
rote:
> How do I get number of days in a year?

You can use the date library...

require 'date'; puts Date.new(2005) - Date.new(2004)
=3D> 366

Todd

Pål Bergström

10/27/2008 5:20:00 PM

0

Todd Benson wrote:
> On Mon, Oct 27, 2008 at 9:12 AM, P�l Bergstr�m <pal@palbergstrom.com> wrote:
>> How do I get number of days in a year?
>
> You can use the date library...
>
> require 'date'; puts Date.new(2005) - Date.new(2004)
> => 366
>
> Todd

So there's nothing like this (Rails)

Time.days_in_month()
--
Posted via http://www.ruby-....

Pål Bergström

10/28/2008 9:33:00 AM

0

A stupid question in the first place. I've done like this; I check if
Feb in a particular year has 29 days or not, so it gives 365 or 366
days. Simple. :-)
--
Posted via http://www.ruby-....

Brian Candler

10/28/2008 10:19:00 AM

0

Pål Bergström wrote:
> A stupid question in the first place. I've done like this; I check if
> Feb in a particular year has 29 days or not, so it gives 365 or 366
> days. Simple. :-)

And notice how days_in_month is implemented in activesupport:

def days_in_month(month, year = now.year)
return 29 if month == 2 && ::Date.gregorian_leap?(year)
COMMON_YEAR_DAYS_IN_MONTH[month]
end

So all you need is:

irb(main):001:0> require 'date'
=> true
irb(main):002:0> Date.gregorian_leap?(2008) ? 366 : 365
=> 366
irb(main):003:0> Date.gregorian_leap?(2009) ? 366 : 365
=> 365
--
Posted via http://www.ruby-....

Jan Friedrich

10/28/2008 12:24:00 PM

0

Brian Candler <b.candler@pobox.com> wrote:
> So all you need is:
>
> irb(main):001:0> require 'date'
> => true
> irb(main):002:0> Date.gregorian_leap?(2008) ? 366 : 365 => 366
> irb(main):003:0> Date.gregorian_leap?(2009) ? 366 : 365 => 365

Or ask the day of year of December 31st:

require 'date'
DateTime.new(2008, 12, 31).yday # => 366
DateTime.new(2009, 12, 31).yday # => 366

Best regards,
Jan Friedrich

Jan Friedrich

10/28/2008 12:27:00 PM

0

Brian Candler <b.candler@pobox.com> wrote:
> So all you need is:
>
> irb(main):001:0> require 'date'
> => true
> irb(main):002:0> Date.gregorian_leap?(2008) ? 366 : 365 => 366
> irb(main):003:0> Date.gregorian_leap?(2009) ? 366 : 365 => 365

Or ask the day of year of December 31st:

require 'date'

DateTime.new(2008, 12, 31).yday # => 366

DateTime.new(2009, 12, 31).yday # => 365

Best regards,
Jan Friedrich

Pål Bergström

10/28/2008 3:45:00 PM

0

Jan Friedrich wrote:
> Brian Candler <b.candler@pobox.com> wrote:

> Or ask the day of year of December 31st:
>
> require 'date'
>
> DateTime.new(2008, 12, 31).yday # => 366
>
> DateTime.new(2009, 12, 31).yday # => 365
>
> Best regards,
> Jan Friedrich

That was smart. Thanks!
--
Posted via http://www.ruby-....