回答編集履歴

1 私見の追加

swordone

swordone score 19709

2015/04/15 00:17  投稿

おそらくコードのFIRST_DAY_OF_WEEKを0か1に書き換えることによって,
日曜日始まりのカレンダーか,月曜日始まりのカレンダーかを作り分けられるのではないでしょうか?
(だいぶ危険な構造ではありますが)
そうなると,populate empty days before first real dayでやっているのは
一番上の列の「曜日」が入る列の作成と,「1日」が入る前の空きマスの作成ではないかと思われます.
2つ目の質問ですが,if文の条件は`firstDay>1`なので,firstDayが1,つまり日曜日の場合はelseに入ります.
なんだか色々無駄が多いコードにも見えますし,「思いつくままやってみたらできた」って感じのコードにも見えます.
なんだか色々無駄が多いコードにも見えますし,「思いつくままやってみたらできた」って感じのコードにも見えます.
---
追記
上の様に書きましたが,改めて全コードを見返してみると,
ここの仕組みだけでは月曜始まりのカレンダーになりそうもありません.
getViewの1行目の並びがsun-sutで確定しているので.
でも計算方法やら途中のコメント`// sunday => 1, monday => 7`を見る限り
そうしようとした意志は感じられるんですよね・・・
だからこれは月曜始まりにも対応しようとしたけど挫折した痕跡,と私は捉えます.

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る