{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/callysto/callysto-sample-notebooks/blob/master/notebooks/images/Callysto_Notebook-Banner_Top_06.06.18.jpg?raw=true)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Calendar Problem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/richardhoshino/callysto/blob/master/files/calendarpic.jpg?raw=true)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBAgJCgoJCAgICAgICAgICAgICAgICAgICAgICAgICAgIChwLCAgOCQgIDRUNDh0dHx8fCAsgICAeIBweHx4BBQUFCAcIDwkJDxIVEhUXFRcVFxYVFRUXGhIVEhUVFRUVFRUVFRUVFRUVFRIVFRUVFRUVFRUVFRUVFRUVFRUVFf/AABEIAWgB4AMBIgACEQEDEQH/xAAdAAABBAMBAQAAAAAAAAAAAAAAAgMEBwUGCAEJ/8QAXhAAAgEDAQQEBQwMCAsJAAMAAQIDAAQRBQYSEyEHMUFRCBQiYXEjMkJSVHKBkZOhsdQVMzVTYnOStMHR0tMkQ3R1gpSz4RYXGCU0NkRjtcLwJmSDhKKkssTxJ0W2/8QAGwEBAQADAQEBAAAAAAAAAAAAAAECAwQFBgf/xAA2EQACAgEDAgQEBAUEAwEAAAAAAQIRAwQhMRJBBRNRYQYicYEUMrHBIzNCUpFygtHwNKHxFv/aAAwDAQACEQMRAD8A4yooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAope4aOGfNQCKKc4R81e8E+agGqKeFu3ePn/VSvFW71+f8AVQEeipPibd6/P+qvfEX71+M/qoCLRUvxB+9fjP6q9+xz96fGf1UBDoqb9jX70+M/qr37GSd6fG37NAQaKyA0mT2yfG37NKGjS+2j+Nv2aAxtFZQaHL7aP42/ZpQ0Cb20X5Tfs0BiaKzH+D03tovyn/Yr0bOT+2i/Kf8AYoDDUVnBsxP7eH8p/wBilf4LXHt4fyn/AGKAwNFZttmpx7OL8p/2KR/g9N7aL8pv2aAw9FZ2PZe4bqaH8p/2KkJsXdH2cHwtJ+7oDWqK2kbDXf3y3/Ll/d0sbB3n3y2/Ll/dUBqdFbaNgLz75bfly/uqWOjy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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('pdMUk16675U')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Determine what day of the week YOUR BIRTHDAY will fall on this year.\n", "\n", "#### For example, January 1, 2019 was Tuesday, and January 1, 2020 will be Wednesday." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Before you look at the code below, ask yourself what information you need to solve this challenging problem. \n", "\n", "#### See if you can develop an \"algorithm\" where you input the month and day (e.g. 6 and 15 if your birthday is June 15), and your algorithm correctly outputs whether your birthday will fall on a Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, or Sunday." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def calculate_day(month,day): \n", " \n", " if month==1: shift=0\n", " elif month==2: shift=3\n", " elif month==3: shift=3\n", " elif month==4: shift=6\n", " elif month==5: shift=1\n", " elif month==6: shift=4\n", " elif month==7: shift=6\n", " elif month==8: shift=2\n", " elif month==9: shift=5\n", " elif month==10: shift=0\n", " elif month==11: shift=3\n", " elif month==12: shift=5\n", " else: return \"ERROR\" \n", " \n", " mytotal = day + shift\n", " \n", " remainder = mytotal % 7\n", " \n", " if remainder==0: return \"Monday\"\n", " elif remainder==1: return \"Tuesday\"\n", " elif remainder==2: return \"Wednesday\"\n", " elif remainder==3: return \"Thursday\"\n", " elif remainder==4: return \"Friday\"\n", " elif remainder==5: return \"Saturday\"\n", " elif remainder==6: return \"Sunday\"\n", " else: return \"ERROR\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Saturday'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calculate_day(6,15)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Double-check your answer using this handy widget. After you hit the \"Run\" button, you'll be able to use the sliders to change the month and day to your birthday.\n", "\n", "#### Note: this widget is for the year 2019. For the year 2020, add one day (e.g. Jan 1, 2019 is a Tuesday, and so Jan 1, 2020 is a Wednesday)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d31fb24054a24afca43681b98cf7a8a7", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=6, description='month', max=12, min=1), IntSlider(value=15, description=…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from __future__ import print_function\n", "from ipywidgets import interact, interactive, fixed, interact_manual\n", "import ipywidgets as widgets\n", "\n", "interact(calculate_day, month=widgets.IntSlider(min=1, max=12, step=1, value=6), day=widgets.IntSlider(min=1, max=31, step=1, value=15))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/callysto/callysto-sample-notebooks/blob/master/notebooks/images/Callysto_Notebook-Banners_Bottom_06.06.18.jpg?raw=true)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 2 }