Digital FXtbook
Easy Contacts
  • Home
    • Free Software
    • The Author
    • Former Students Hall of Fame
    • A tribute....
  • Animation
    • Intro to 3d >
      • AutoDesk
      • Introduction: The Temple
      • Creating a Film >
        • Scriptwriting and Planning
        • StoryBoarding
        • Story Reels
      • Modeling >
        • The Nail
        • First Freestyle Lesson >
          • Cup and Straw
          • Garbage Can
        • Fence
        • Hammer
        • House
        • Environment Bubble
      • Animation >
        • Beginning Animation
        • Animation - Walk Cycle
        • Facial Animation
      • Rendering >
        • Arnold Rendering
      • Editing film >
        • Credits
        • Video Editing
      • Characters
    • Modeling and Rigging >
      • Modeling >
        • Image Planes
        • Polygon Modeling >
          • Coke Can
          • Low Polygon Character
          • Character Modeling Legion the Geth
          • Character Modeling Geth Armor
          • Face Modeling
        • NURBS Modeling >
          • Intro to NURBS
          • Lofting
          • CV Curves
          • Organic Modeling
          • Autombile
      • 3d Coat >
        • Integration with Maya >
          • Getting stuff out of Maya
        • UV Texture Mapping >
          • Texture mapping in 3d Coat
        • 3d Painting >
          • Painting in 3d Coat
        • Reintegration with Maya
      • Rigging >
        • Rigging with HumanIK
        • Smooth Skinning
      • Motion Capture
    • 3d Animation >
      • Arnold Rendering
      • Reference Videos
      • Beginning Animation
      • Characters
  • Gaming
    • Board Game Game Design Document
    • Modeling >
      • Introduction: The Temple
      • Halo 1 Blood Gulch Base
      • Hammer
      • Sword
      • Character Modeling Big Daddy
      • Shield
      • The OM6G
      • Weapon
      • Character Modeling Legion the Geth
      • Character Modeling Geth Armor
    • Animation >
      • Character Animation
    • Rigging >
      • Rigging with HumanIK
      • Characterizing and MoCap
      • Integration with Unity
    • Unity >
      • Block Breaker >
        • Block Breaker Game #1
        • Block Breaker Game #2
        • Block Breaker Game #3
        • Block Breaker Game #4
      • Terrain
      • Importing Models
  • Coding
    • Beginning C# >
      • First Unit >
        • First Program
        • Comments
        • PsuedoCode
        • Numbers and Operators
        • Use of Parenthesis
        • Casting
        • Try and Catch
        • Operators
      • Second Unit >
        • Conditional Statements >
          • Number validator
          • Number tester
          • Speed Camera
        • Random Class
        • Loops >
          • For Loops
          • For Each Loops
          • While Loops
          • Do While Loops
        • Arrays >
          • Simple Arrays
          • Complex Arrays
      • Third Unit
    • Intermediate C# >
      • Object Oriented Programming
  • Student Films
    • Advanced Student's movies
    • Beginning Student's movies
  • Adobe
    • Photoshop >
      • Introduction
      • Selection Tools >
        • Melonhead >
          • Melonhead Creative
        • Breakfast Lunch or Dinner
        • Blu 42
      • Painting Tools >
        • Invisi-World
        • Image Adjustment
        • FreeStyle project
      • Drawing Tools >
        • Abstract Expressionism
    • Premier >
      • Project 1
    • Illustrator >
      • Vector Ninjas
      • Live Art Painting
      • Starting the Pen Tool
      • Apple and Pear
      • Creating Your LOGO
      • Self Portrait
  • Links
    • Distance Reconnecting
    • Key Board Fix/Hack
    • Buiding Piers >
      • Buiding Piers
      • Buiding Piers
    • The Top Six Animation Schools
    • The Top Video Game Design Schools
  • International Team
  • BPA
    • BPA 2017-2018 >
      • Getting organized
      • Building the Train
      • Texturing the Train
      • Animating the Train
      • Making our Entry Film
    • BPA 2018-2019
    • BPA 2019-2020
  • Arnold Lighting
  • Faculty Video
  • Velomobile
  • CTE Summer Workshop

Zeller's Congruence

In this lesson we are going to figure out what day of the week it is after being given any given set of dates. 

Have you ever wondered how to find a weekday for any (past or future) date?

Okay, you can check it in a calendar (you probably have one on your smartphone), but this is no solution for a coder.

One of the most popular algorithms for this task is the so-called "Zeller's congruence".

Sounds complicated?

Nothing could be further from the truth, and we're going to show you exactly that.

You'll need three values:

year number (int – let's assume that we're interested only in dates from the 20th and 21st centuries);
month number (int – 1 to 12);
day number (int – 1 to it depends)

Be patient – this will take a while:

1. Decrease month number by 2;
2. if month number becomes less than 0, increment it by 12 and decrement year by 1;
3. take month number and multiply it by 83 and divide it by 32;
4. add day number to month;
5. add year number to month;
6. add year/4 to month;
7. subtract year/100 from month;
8. add year/400 to month;
9. find the remainder of dividing month by 7;
10. Congrats! A weekday number is ready for you! 0 – Sunday, 1 – Monday, ... and so on.


We want you to write a code which finds a weekday number for a date entered by a user.

The program should ask the user for the year, month and day (in this order) and output a value indicating a weekday. Make your code as smart as possible. Test your code using the data we've provided. 



​Sample code

None for this lesson.....



​Assignment

Build the program described above and get it to work correctly. To make sure that it is working correctly here are some dates that you can use to test it against.

Example input
2016
2
10

Example output
3

Example input
2000
1
1

Example output
6 

Example input
1999
12
31

Example output
5

Example input
1964
12
21

Example output
​1 

EXTRA CREDIT!!!

Instead of outputting some stupid number, like 0-6, write an extra line or two of code to have it print out the actual day of the week.
So.... understanding that;

0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday

​Have the code print out Monday instead of 0 and so on.
Proudly powered by Weebly