こんにちはこんにちは
KOFのキャラではハイデルンが好きな僕です。
会社のポプ子みたいなノリの人から日々煽られながら生きています。
まぁそんなことはどうでもよくて、ちらっとブログ書こうと思ったので書きます。

GolangのtimeのAddDateを使うと3月末の1ヶ月前は3月の月初になる。
3月31日の1ヶ月後は5月1日である。
何を言っているのか一瞬わからないと思うが、Golang書いてたら、timeの.AddDateが予想外の動きしてたのがわかったのでメモ・・・

・ 結果

・ 結論
こういう動きをしている
3/29 の1ヶ月前は 2/29 なので存在しないため、 3/1 になってしまっている
たとえば、
3/30 の1ヶ月前は 2/30 なので存在しないため、 3/2 になる
1/31 の1ヶ月後は 2/31 なので存在しないため、 3/3 になる

sourceを見てみると、

なんで、、、なんで、、、 convertしてしまうんだ、、、、
このconvertがきいてしまっている結果このような状況になるっぽい。。。
まぁ仕様っぽいからしょうがないけど知らないと危なそうだなと思った。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA