Birthday Party

Birthday Party

I want to know when I will celebrate my birthday.

The only problem is that often I can't organize a party on the same day as my birthday, because I want to invite a lot of my friends and the most convenient day for them to celebrate is the weekend.

I was hoping you could help me calculate the party date by the given birthday date, but, as I said before, the date should meet specific requirements:

  • It should always be the closes weekend to my birthday.
  • I don't want to celebrate before the birthday.
  • But I'm ok with marking in the day.

Input: Date of my birthday.

Output: Date of the party.

Example:

assert.deepStrictEqual(
    birthdayParty(new Date(2022, 0, 5)),
    new Date(2022, 0, 8)
);
assert.deepStrictEqual(
    birthdayParty(new Date(2022, 1, 21)),
    new Date(2022, 1, 26)
);
assert.deepStrictEqual(
    birthdayParty(new Date(2022, 2, 26)),
    new Date(2022, 2, 26)
);
assert.deepStrictEqual(
    birthdayParty(new Date(2022, 3, 17)),
    new Date(2022, 3, 17)
);
19