Python编程算法【五】 打鱼还是晒网
【案例内容】
中国有句俗话叫“三天打鱼两天晒网”。一位大叔从1990年1月1日起便开始“三天打鱼两天晒网”,请问大叔在往后的某一天是“打鱼”还是“晒网”?
【解题思路】
先计算从1990年1月1日起,到指定的日期,比如2012年10月25日,共有多少天。在python中可以利用datatime模块,计算两个日期之间相差的天数,包括闰年和平年在内。
其实,根据题意,第1、2、3天是打鱼,第4、5天是晒网。也就是说,每隔5天一个循环,再进一步分析,将一个数去除以5,会得到的余数分别是1、2、3、4,如果余数是1、2、3,刚好对应的是第1、2、3天,余数是4或正好整除,对应的就是第4、5天。
最后,将两个日期相减所得的天数,去除以5,若余数为1、2、3,即余数<=3,则他是在“打鱼”,余数为4或整除,也就是余数除1、2、3以外的其他情况时,他就在“晒网”。
【Python代码】

由于python拥有强大的各种模块,本题直接利用datatime模块,可以方便算出某个日期与1990年1月1日之间相差的天数,不然就得自己去计算天数,还得考虑闰年和平年的情况,而有了datatime模块,就无需考虑闰年或平年,它已经帮我们一起计算在内了。