言語によっては標準的に月末日を取得できる関数が用意されている
用意されてない場合もそこそこあるし
サードパーティー的なライブラリだとライセンスなどメンテナンス含めて面倒になるので避けることも多い
そもそも仕様を「月末日」などという不確定なものにせずに28日にしてもらう
ちゃんと仕様を決める部門と連携が取れていれば多くの場合で28日にしてくれるし
「28日支払い」が多いのもこのためだと思ってる
割とよくある実装がこの「次の月初めから1日(1秒)引く」という実装
2024年2月の月末日を取得する場合は2024年3月1日のUNIX時間から24*60*60秒を引いて計算する
ただし、実装を間違えると12月31日のときに失敗するので注意が必要
各月の月末日をマップとして保持しておいて取得させる
関数実装するなら if(month==1) return 31 とかを12行書けば実装できる
自分で実装する場合はプログラミングの教科書にあるぐらい有名なのでコピペでもChatGPTでも使えば良い
ただ仕様をそのまま実装せずに「4で割り切れたら閏年」でも問題無い(やったことはないが)
「それだと2100年でバグる!」
ちなみに過去の日付であっても2000年はバグらない(そのための400年処理だし)ため
PayPay資産運用のクレカ積立日が28日固定やから雑魚プログラマーしかいないんやろなぁと思ってるやで。