Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- function getNextDayOfWeek(date, dayOfWeek) {
- if (dayOfWeek < 0 || dayOfWeek > 6) return false;
- if (!isDateObjectValid(date)) return false;
- var resultDate = new Date(date.getTime());
- resultDate.setDate(date.getDate() + (7 + dayOfWeek - date.getDay()) % 7);
- return resultDate;
- }
- function getPreviousDayOfWeek(date, dayOfWeek) {
- if (dayOfWeek < 0 || dayOfWeek > 6) return false;
- if (!isDateObjectValid(date)) return false;
- var resultDate = new Date(date.getTime());
- resultDate.setDate(date.getDate() - (7 - dayOfWeek + date.getDay()) % 7);
- return resultDate;
- }
- function getClosestDayOfWeek(date, dayOfWeek) {
- if (dayOfWeek < 0 || dayOfWeek > 6) return false;
- if (!isDateObjectValid(date)) return false;
- var inputedDate = new Date(date.getTime());
- var nextDate = getNextDayOfWeek(inputedDate, dayOfWeek);
- var previousDate = getPreviousDayOfWeek(inputedDate, dayOfWeek);
- if (nextDate - inputedDate < inputedDate - previousDate) {
- return nextDate;
- }
- if (nextDate - inputedDate > inputedDate - previousDate) {
- return previousDate;
- }
- return inputedDate;
- }
- function isDateObjectValid(date) {
- return date instanceof Date && !isNaN(date);
- }
- var date = new Date("2019-12-19");
- alert("Closest Friday: " + getClosestDayOfWeek(date, 5)); // 5 is Friday
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement