代码改变世界

抛砖:通过循环和分支结构实现万年历功能

2019-09-25 17:43  老九君  阅读(236)  评论(0)    收藏  举报

阅览了RUDECRAB朋友的三篇文章,受教颇多。相比之下,个人在写代码的时候总会想着先写出代码实现功能,然后再回头一个一个地用注释去解释这行代码的含义和我写的动机。
但功能的实现一旦细分出几个小的部分,注释其实是自然而然就写出来了,就好像一个一个零件对应的词条,自动组成了产品的一篇说明书。而不是产品组装好后,再一个一个地指着其中的零件说:“这个是干什么的”。

不过我也按照自己思路写了万年历的代码,有这样几个已知的问题:
1. 所有代码写一个类中,比较冗长
2. 其中部分循环嵌套结构,是完成了两种以上的功能,算是不符合“一个方法做一件事”的原则
3. 注释说的不明不白,格式也有点问题,也许就我看得懂

但我也发上来,算是抛砖,也方便对比学习,期待RUDECRAB朋友的下一篇笔记。

 

 

 

 

 

 

 

看见中间很壮观的嵌套分支了吗?刚写完的时候很得意,因为我用这个实现了当月1日到当年元旦的天数days计算,顺便还把当月天数也赋值给day了。
但这个当年内天数days的计算,用switch结构不带break的技巧,可以省掉好几个大括号的行数。
不过用一个switch把days和day都算出来,好像判断条件有点多,我写了一下发现从2月往后每个月都要判断闰年,不太适合。但这是因为试图”一个方法实现两个功能”的原因,分开写都很简单,合在一起就麻烦很多。

最后要做一个总结和思考是吗?

嗯————人们是为了偷懒而进步的。

第一次写,不足和疏漏之处还请见谅

 

 

老九学堂会员社群出品

作者:SSR-PIX