说明
这是一个功能简单的日历打印程序(显然没什么卵用),它可以打印1900年至2500年间的日期信息。本程序没有设置退出条件(你想要退出请强制退出),也没有加入更为复杂的输入判定(如果你输入非法类型数据,可能发生死循环、非预期值等情况),所以请善待它。
设计思路:
程序以1900年的1月1日为基准(这天是星期一),当你输入某一日期(年份加月份,如:1949 10)后,程序进行简单的日期范围性判断。判断成功后,首先计算1900-1948年一共有多少天(我这里并非真正加上了每年的天数,进行闰年判断。如果为闰年,就加上366%7,否则加上365%7。可以避免年份较大时数据超出 int 型数据范围),然后加上1949年1-9月的天数,最终再加1(第10月的第一天)。最后用这个总值取余7,即可知道1949年10月1日是星期几(如果余0为星期日,10月1号这天是星期六)。
然后利用一个简单的循环将这个月的日期与每周七天对应并打印,当然也有些值得注意的地方。比如首次打印时我借助了一个临时变量,以便于打印出 1 号之前(1号为周六,则上要打印周日至周五)的空格,随后再利用一个控制打印语句,实现每打印完周六后进行一次换行。
效果