Digital FXtbook
Easy Contacts
  • Home
    • Software
    • The Author
    • Former Students Hall of Fame
    • A tribute....
  • 3d Training
    • Gaming >
      • Unity >
        • Unity Essentials >
          • Introduction >
            • 3d Gaming Essentials
            • The Floor is Lava Name Project
          • Introduction to Scripting >
            • Getting Started with Scripting
            • Default Scripting
            • Scripting a Game Object
          • Final Exam Project choice #1
          • Final Exam Project choice #2
          • Real Time Audio >
            • Adding Background Music
            • 3-d Audio effects
          • 2d Essentials >
            • 2d Game Objects
            • Objects on 2d Game Objects
          • Real Time Industry
        • Creative Core >
          • Introduction to Creative Core
          • Shaders and Materials
          • Lighting
          • Animation
          • VFX
          • Cameras
          • Post Processing
          • Audio
          • User Interface
          • Proto-Typing
      • Maya >
        • Modeling >
          • Introduction: The Temple
          • Name Text Curve
          • Minecraft Steve
          • Minecraft Tools and Weapons
          • Roblox Character modeling
          • Garbage Can
          • Hammer
          • Sword of Light
          • Buzz Axe
          • 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
    • Fundamentals of 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
    • Advanced Maya >
      • Modeling and Rigging >
        • Linda Training >
          • Advanced Modeling >
            • Modeling Basics
            • Modeling Room Objects
          • Rigging >
            • Rigging Basics
            • Rigging Creating Skeletons
            • Rigging: Body Controls
            • Rigging: Hands
            • Rigging: Skinning
        • 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
        • Texturing
        • Rigging >
          • Rigging with HumanIK
          • Smooth Skinning
        • Motion Capture
        • Blender
      • 3d Animation >
        • Linda Training >
          • Animation - Fundamentals
          • Animation - Next Steps
          • Animation - Pose to Pose
          • Animation - Facial Animation
          • Animation - Lip and Body Animation
        • Arnold Rendering
        • Reference Videos
        • Beginning Animation
        • Characters
  • Coding
    • C# Programming >
      • Beginning C# >
        • First Unit >
          • First Program
          • Comments >
            • PsuedoCode
          • Variable Types >
            • AlphaNumeric Variables
            • Numeric Variables
          • Getting input from the user
          • Operators >
            • Assignment and Arithmetic Operators >
              • Use of Parenthesis
              • Algebra in code and assundry CHAOS
            • Comparison and Logical Operators >
              • Logical Data, Illogical Assignment
            • Operator Assignments >
              • Floats Conversion from Metric to English
              • When is Easter??
          • Try and Catch
          • Casting
        • Second Unit >
          • Conditional Statements >
            • Number validator
            • Number tester
            • Speed Camera
          • Random Class
          • Arrays >
            • Simple Arrays
            • Complex Arrays
          • Loops >
            • For Loops >
              • Adding Numbers
            • For Each Loops
            • While Loops
            • Do While Loops
        • Third Unit
      • Intermediate C# >
        • Object Oriented Programming
    • Unity Coding >
      • Junior Programmer >
        • Create with Code 1
        • Create with Code 2
        • Manage Scene Flow and Data
        • Apply Object-Oriented Principles
      • Introduction Unity Lesson
      • Number Wizard Game #1
      • Second Unity Game: Text Adventure
      • Number Wizard Game GUI
      • Block Breaker >
        • Block Breaker Game #1
        • Block Breaker Game #2
        • Block Breaker Game #3
        • Block Breaker Game #4
  • Student Films
    • Advanced Student's movies
    • Beginning Student's movies
  • Adobe
    • Premier >
      • Chapter 1
      • Chapter 2
      • Chapter 3
      • Editing A-Roll
      • Chapter 4
      • Editing B-Roll
      • Chapter 5
      • Chapter 6
      • Chapter 7
      • Chapter 8
      • Chapter 9
      • Chapter 10
      • Chapter 11
      • Chapter 12
    • Photoshop >
      • Introduction
      • Selection Tools >
        • Melonhead >
          • Melonhead Creative
        • Breakfast Lunch or Dinner
        • Blu 42
      • Painting Tools >
        • Invisi-World
        • Image Adjustment
        • FreeStyle project
      • Drawing Tools
  • Links
    • BPA >
      • Futuristic Character >
        • Design and Concept
    • The Top Six Animation Schools
    • The Top Video Game Design Schools

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