Antonio Olivares wrote:
----- Original Message ----
From: Karl Larsen <k5di@xxxxxxxxxx>
To: For users of Fedora <fedora-list@xxxxxxxxxx>
Sent: Wednesday, August 8, 2007 5:07:49 PM
Subject: Re: It it now a leap year?
Mike - EMAIL IGNORED wrote:
On Thu, 09 Aug 2007 06:02:27 +0930, Tim wrote:
Andrew Parker:
For bash the following will display 061 if its currently a leap year,
060 otherwise
date -d "$(date +%Y)/03/01" +%j
Kevin J. Cummings:
It doesn't work with dates after 2037/03/01 ....
Leaving you with thirty years to develop a solution, or spend a few
minutes pondering whether to bother... ;-)
But seriously, although some might think you don't need to worry about
such things, there are programs that will need to do some work using a
date from the future. The matter is more urgent than immediately
obvious.
[...]
My program deals only with the present and the immediate past.
Since in 30 years I hope to celebrate (?) my 98th, it would be
quite interesting to see if the problem still concerns me. :)
Mike.
In a terminal type $cal 2 2008 and you will see February has 29 days
when it is leap year according to Google. Do $cal 2 2007 and you will
see this:
[karl@k5di ~]$ cal 2 2007
February 2007
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
So no leap year in 2007
--
Karl F. Larsen, AKA K5DI
Linux User
#450462 http://counter.li.org.
--
I like your solution Karl. Not to make less of the other answers provided. Rick provided a C+ program which is awesome. I like all the answers. But Karl's way of looking at it, in a leap year February has 29 days, so check by generating a calendar for the month of February month 2 and the year and if it has 29 days, it is a leap year, if it does not then no leap year. No need to worry about if the year ends in two zeros, which is divisibe by 100 without a remainder. If the number of the year ends in a 4,8,12,16,20,24, any multiple of 4, it is a leap year. There is a rule
cal 2 year where year is a number from 1 to 9999 after that the program does not work.
1700 is a leap year, 1704,1708,1712,1716, ... and so on
The rule
if year modulo 400 is 0 then leap
else if year modulo 100 is 0 then no_leap
else if year modulo 4 is 0 then leap
else no_leap
where modulo is the remainer when the year divided by 400 is 0, leap year
else if the remainder is zero when the year is divided by a 100, leap year
else if the remainder is zero when the year is divided by 4, then leap yaer
else no leap year
[olivares@localhost ~]$ cal --help
cal: invalid option -- -
usage: cal [-13smjyV] [[month] year]
[olivares@localhost ~]$ cal 99999
cal: illegal year value: use 1-9999
[olivares@localhost ~]$ cal 2 1700
February 1700
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29
[olivares@localhost ~]$ cal 2 1704
February 1704
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29
[olivares@localhost ~]$ cal 2 1708
February 1708
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29
[olivares@localhost ~]$ cal 2 1712
February 1712
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
[olivares@localhost ~]$
..., every 4 years, there is a guaranted leap year! Unless we die of course, there is no leap year for us.
Great solution Karl!
Regards,
Antonio
____________________________________________________________________________________
Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out.
http://answers.yahoo.com/dir/?link=list&sid=396545433
glad you like it. The cal program is VERY powerful.
--
Karl F. Larsen, AKA K5DI
Linux User
#450462 http://counter.li.org.