Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@taqm

プレミアムフライデーを求める関数(JavaScript)

うちの会社では導入されなかったプレミアムフライデーを求める関数を作ってみました。

コード

対象の翌月から1日引いて対象月の最終日を取得。
最終日が何曜日なのかを判定し、金曜日になるように日数を減算して完了
※ 86400000 = 1000*60*60*24

premium.js
function premium(year, month) {
  const d = new Date(new Date(year, month, 1) - 86400000);
  const w = d.getDay();
  const n = 5 <= w ? w-5 : w+2;
  return new Date(d - n * 86400000);
}

最後に

ただライブラリ無しでやってみたかっただけでした。

追記

コメントで頂いたもっとかっこいい書き方

function premium(year, month) {
    const d = new Date(year, month, 0);
    const w = d.getDay();
    return new Date(year, month, -(w+2)%7);
}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?