• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Leap Year Problem !

 
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have started doing Leap year Assignment..I hv just finsihed the code bu the only thing Iam not able to understand is thebelow thing :
"
except every year that is evenly divisible by 100
except every year that is evenly divisible by 400.
"
What does this mean literally. I have consulted many but none seems to give me a satisfied reply..
Plz plz give me a hint on what the above is..
I hv figured out that I must use Boolean logic but something stops me.
A nice clue will surely of great help...
Rgds
Teeyes
 
Sheriff
Posts: 9109
12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There is a clue in the style guide that might help clarify this for you.

If the year is evenly divisible by 400, it is a leap year
If the year is evenly divisible by 100, it is not a leap year (unless it is also evenly divisible by 400)
If the year is evenly divisible by 4, it is a leap year (unless it is also evenly divisible by 100 - in which case it is not a leap year)
 
Ranch Hand
Posts: 301
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Marilyn deQueiroz:

If the year is evenly divisible by 4, it is a leap year (unless it is also evenly divisible by 100 - in which case it is not a leap year)


Unless it is ALSO evenly divisible by 400! (not to confuse things... )
------------------

Joel Cochran
 
teeyes prakash
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
U both hv confused me further
Plz be clear and don't repeat the smae what is there...
 
Ranch Hand
Posts: 1070
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'll write it out in one sentence:
It is a leap year if it is divisible by 4 and not divisible 100 unless it is also divisible by 400.
Bill
 
Ranch Hand
Posts: 233
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Teeyes, I feel Marilyn's explanation is clear. You need to read it critically and look at the Style Guide for the clue she told you about.
Anyway here's my go at it:
it's a leap year if -
evenly divisible by 400
-OR-
evenly divisible by 4 and NOT evenly divisible by 100.
it's NOT a leap year if - evenly divisible by 4 and evenly divisible by 100.
Hope this helps.
 
Ranch Hand
Posts: 111
jQuery Oracle C++
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Maybe this will help:
First of all if the year is divisible by 4 then it may likely be a leap year but if it is not divisable by 4 then you automatically know it is not a leap year.
Lets just say that it is divisible by 4 now you have to find out if that year is divisible by 100. If that year is divisible by 100 then it is not a leap year, but you have to do one more check on that same year if you have made it to this point (yr is div by 4 AND year is div by 100). The next check would be if that year is divisible by 400, if that is true at this point then that year would finally be a leap year.
Here are some examples:
The year 2004 is divisible by 4 (making it a likely candidate for leap year but needs to be checked further), AND it is not divisible be 100 so now you can say that it is a leap without checking anything else.
The year 2000 is divisible by 4 (Now check further) AND is divisible divisible by 100 (this year now may not be a leap year but needs another check to decide whether it is or not), the final check the year 2000 needs to go through is that is if it is divisible by 400 (which is true finally making it a leap year)
The year 2100 is divisible by 4 (right now may be a leap year Check further), is divisible by 100 (right now is not a leap year, Check further), it is not divisible by 400 which means it is NOT a leap year.
The year 1999 is not divible by 4 so you don't even need to check further you know it is not a leap year.
Hope this helps. Sorry it is so verbose.
Amber Woods
 
tumbleweed
Posts: 5089
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Whow you a teacher Amber
 
teeyes prakash
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Excellent Amber..
U R great..
That explanation was too goos and cleared all my doubts..
Now what I ask is...is this step necessary :
"
Except divisible by 100
"
Just U can go by two steps, 4 and 400
Kindly clarify..
rgds
 
bill bozeman
Ranch Hand
Posts: 1070
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
No, you have to have the 100 part. For example, year 2000 is divisible by 100, so it wouldn't be a leap year, but it is also divisible by 400 so it is.
Now 2100 is divisible by 100, so it is not a leap year, and it is not divisible by 400, so it still isn't a leap year.
You have to do all 3 checks and you have to do them in order.
Check for 4
Check for 100
Check for 400
Bill
 
teeyes prakash
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Again U R confusing a lot...
Plz be clear on what U R trying to tell..
What Iam asking is...
Is this step ( checking for divisibility by 100) really necessary..???
For that U are confusing things...
Can anyone tell me why this extra step..???
 
Ranch Hand
Posts: 2676
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There are some years that are divisible by 4 and divisible by 100 but not divisible by 400. An example would be the year 200. If you did not check to see if it is divisible by 100 then you would determine that it is a leap year when it is not. 2100 is a good example as well. 2100 is evenly divisible by 4 putting it into the possibly leap year category. When tested against 100, it turns out that it is also evenly divisible there. The 100 test overrides the 4 test and takes it out of the possibly a leap year category. It is then tested against 400, which overrides 100. It is not evenly divisible by 400, so it is not a leap year. In the case of the year 2000, the 4 test puts it into the possibly leap year category. When tested against 100 it is taken out. When tested againt 400 it is determined that 2000 is a leap year. I hope this makes it clear.
Matthew Phillips
 
Marilyn de Queiroz
Sheriff
Posts: 9109
12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Originally posted by teeyes prakash:
"Is this step ( checking for divisibility by 100) really necessary..???"

I suggest you write the program without this step and see what happens. You tell me, is this step really necessary???
 
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I will try give my concise version of the rule.
Every year is a leap year when it is evenyly divisible by 4, unless it is also divisble by 100. e.g., 1904 is a leap year; 1900 is not.
If the year is divisible by 400, it is a leap year NO MATTER WHAT. e.g., 2000 is a leap year because it is divisible by 400(This rule tales precedence over the divisibility by 100 rule).
reply
    Bookmark Topic Watch Topic
  • New Topic