はてなキーワード: うるう年とは
どうでもいいことなんだけど、どうして2月は28日までしかないの?って考えたことあるよね?
ローマ皇帝アウグストゥス(オーガストの語源?)が8月生まれで8月を31日にしたから2月の日数を減らしたとかどうとか。
ま、それは置いといて。
普通に考えれば、1年は365日だから、ひと月30日だとすると12つきで360日。
2月4月6月8月10月11月12月を30日にすればいいわけ。
うるう年だけ奇数月が31日、偶数月が30日になって、ちょうどいい塩梅になるのよね。
で、今のカレンダーって2月だけが極端に短くなってておかしくない?って思うわけよ。
ユリウス暦とかグレゴリオ暦とかカレンダーの歴史ってあるわけだけど、もうそろそろ新カレンダー作ってもいいころじゃない?
20××年1月1日から全世界一斉に新カレンダーに移行ってならないもんかね?
みんなそこんとこどう思ってるんだろうって思って。
ま、どうでもいい話なんだけどね。
-
たかしくんは、夜、シャワーを浴びた後で下着を新しく交換するという一般的な生活スタイルですが
このたび欲しいバイクのために節約しようと、パンツをだいたい2日に1回くらいしか替えない事にしよう、と決めました。
具体的には、今日の日付が偶数であれば(2日・4日・・・)今夜はパンツを替える日である、というルールで運用しました。
月末が31日・次の日が1日である場合は3日間も同じパンツを履く事になり、それはちょっとさすがになあ、と思っていました。
なので「例外として、今日が31日であれば今夜はパンツを替える日」というルールを追加しました。
うるう年は2月29日・3月1日と連続してしまう事に気づいたのです。
なので「もう一つ例外として、今日が2月29日であれば今夜はパンツを替える日」というルールを追加しました。
たかしくんの〝今日はパンツを替える日?〟判定ロジック(C#)
bool ShouldChangeMySexyPants(DateTime today) { return (today.Day % 2) == 0 || today.Day == 31 || (today.Month == 2 && today.Day == 29); }
たかしくん「なんだか、ルールが複雑になっちゃったなあ・・・」
ぼく「〝明日が奇数日であれば、今日はパンツを替える日とする〟というルールでも同じじゃね?」
bool ShouldChangeMySexyPants(DateTime today) { return (TomorrowOf(today).Day % 2) == 1; } DateTime TomorrowOf(DateTime d) => d + TimeSpan.FromDays(1);
まあお客さんによっては、「いややっぱり前者のロジックの方がいい。社内の業務のマニュアルにそう書きまくってるから・・・」という話になって
やっぱりロジックは替えずに行こう、という事になったりもするけどね。
だから何なんだ。。。
誰かオチつけて。