• 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

Sybex 829 errata. Ch 4. Please correct the explanation of why 2100 isn't a leap year.

 
Ranch Foreman
Posts: 629
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ch 4 says,

Leap years are years that are a multiple of 4 or 400, but not other multiples of100. For example, 2000 and 2016 are leap years, but 2100 is not.



This explanation is confusing and I don't know what the author meant.

So I searched the internet for why 2100 is not a leap year and found this explanation by NASA which explains it simply and clearly.

https://www.jpl.nasa.gov/edu/news/2020/2/21/doing-the-math-on-why-we-have-leap-day/

...years that are divisible by 100 don't have leap days unless they’re also divisible by 400. If you do the math, you'll see that the year 2000 was a leap year, but 2100, 2200 and 2300 will not be.

 
Greenhorn
Posts: 7
IntelliJ IDE Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
 
Master Rancher
Posts: 4921
74
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Jaques, I'm not sure that's clearer.  You're missing the "else" that everything else is not a leap year.  Also, if a number is divisible by 400, it is automatically also divisible by 100 - you don't need to specify that twice.

Anil, the problem is that it's difficult to fit a good explanation into a short description.  In a book errata, they can't add a bunch of extra lines.  So any replacement needs to be similarly short.

The best I can come up with is: any multiple of 400 is a leap year, and any other multiple of 4 that is not also a multiple of 100 is also a leap year.
 
Anil Philip
Ranch Foreman
Posts: 629
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mike Simmons wrote:
Anil, the problem is that it's difficult to fit a good explanation into a short description.  In a book errata, they can't add a bunch of extra lines.  So any replacement needs to be similarly short.


NASA's one-liner was very clear to me.

...years that are divisible by 100 don't have leap days unless they’re also divisible by 400

 
Anil Philip
Ranch Foreman
Posts: 629
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Anil Philip wrote:

Mike Simmons wrote:
Anil, the problem is that it's difficult to fit a good explanation into a short description.  In a book errata, they can't add a bunch of extra lines.  So any replacement needs to be similarly short.


NASA's one-liner was very clear to me.

...years that are divisible by 100 don't have leap days unless they’re also divisible by 400



It may have been just me, but I simply could not understand the Note in the book.
 
Mike Simmons
Master Rancher
Posts: 4921
74
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
NASA's "one-liner" occurred after they had already set up the part about leap years being divisible by 4, in general, with some exceptions.  The part you quoted is not the complete rule.  When you add that part back in, it's easy to run afoul of the fact that English and human languages in general do not deal well with implying precedence of compound clauses.   "A and B or C"  can mean (A && B) || C, or it can mean A && (B || C)".  Jaques tried to solve that with multiple lines and indentation, while I tried to solve it with a single comma to make the precedence clearer.  But it's hard to make it really short without introducing ambiguity.

Here's another version:

Generally, years divisible by 4 are leap years.  However, years divisible by 100 are not, unless they are also divisible by 400.
 
author & internet detective
Posts: 41919
910
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes, there are many ways of explaining it. All of these explanations are equivalent. Some are clearer to some people and some are clear to others.
 
Anil Philip
Ranch Foreman
Posts: 629
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jeanne Boyarsky wrote:Yes, there are many ways of explaining it. All of these explanations are equivalent. Some are clearer to some people and some are clear to others.



But is the explanation in the book correct?
 
Jeanne Boyarsky
author & internet detective
Posts: 41919
910
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes. I think both our explanation and the NASA explanation and Mike Simmons explanation are all correct. While our explanation isn't your preferred one, that doesn't make it wrong.
 
Climb the rope! CLIMB THE ROPE! You too tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic