> ----- 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