Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let strftime = require("strftime")
- function getDateList(day){
- let n = 3
- let deliveryCandidateDays = []
- while(deliveryCandidateDays.length < 8) {
- let allDays = []
- let m = 1
- while(m <= n - 2){
- allDays.push(new Date(day.getFullYear(), day.getMonth(), day.getDate() + m))
- m += 1
- // console.log("allDays", allDays)
- }
- let businessDays = allDays.filter(function(element){
- let JapaneseHolidays = require('japanese-holidays')
- let holiday = JapaneseHolidays.isHoliday(element)
- let numberOfTheDayOfTheWeek = strftime("%w", element)
- return (!(holiday || numberOfTheDayOfTheWeek == 0 || numberOfTheDayOfTheWeek == 6))
- })
- // console.log("businessDays", businessDays)
- // console.log("deliveryCandidateDays", deliveryCandidateDays)
- if(businessDays.length > 0){
- let avalabilitishDay = new Date(day.getFullYear(), day.getMonth(), day.getDate() + n)
- // console.log("avalabilitishDay", avalabilitishDay)
- deliveryCandidateDays.push({
- dateJp : strftime("%m月%d日" , avalabilitishDay) ,
- dateEn : strftime("%Y-%m-%d" , avalabilitishDay) ,
- })
- }
- n += 1
- }
- return deliveryCandidateDays
- }
- let s = 0;
- function assert_equal(arg1 , arg2){
- s++;
- if(arg1.length != arg2.length){
- throw("not equals")
- }
- for(let i = 0 ; i < arg1.length ; i++){
- if(arg1[i]["dateJp"] != arg2[i]["dateJp"]){
- console.log(arg1[i]["dateJp"])
- console.log(arg2[i]["dateJp"])
- throw("not equals " + i + ":" + s)
- }
- if(arg1[i]["dateEn"] != arg2[i]["dateEn"]){
- throw("not equals " + i + ":" + s)
- }
- }
- }
- assert_equal(getDateList(new Date("2018-09-21")) ,
- [ { dateJp: '09月27日', dateEn: '2018-09-27' },
- { dateJp: '09月28日', dateEn: '2018-09-28' },
- { dateJp: '09月29日', dateEn: '2018-09-29' },
- { dateJp: '09月30日', dateEn: '2018-09-30' },
- { dateJp: '10月01日', dateEn: '2018-10-01' },
- { dateJp: '10月02日', dateEn: '2018-10-02' },
- { dateJp: '10月03日', dateEn: '2018-10-03' },
- { dateJp: '10月04日', dateEn: '2018-10-04' } ])
- assert_equal(getDateList(new Date("2018-09-22")) ,
- [ { dateJp: '09月27日', dateEn: '2018-09-27' },
- { dateJp: '09月28日', dateEn: '2018-09-28' },
- { dateJp: '09月29日', dateEn: '2018-09-29' },
- { dateJp: '09月30日', dateEn: '2018-09-30' },
- { dateJp: '10月01日', dateEn: '2018-10-01' },
- { dateJp: '10月02日', dateEn: '2018-10-02' },
- { dateJp: '10月03日', dateEn: '2018-10-03' },
- { dateJp: '10月04日', dateEn: '2018-10-04' } ])
- assert_equal(getDateList(new Date("2018-09-23")) ,
- [ { dateJp: '09月27日', dateEn: '2018-09-27' },
- { dateJp: '09月28日', dateEn: '2018-09-28' },
- { dateJp: '09月29日', dateEn: '2018-09-29' },
- { dateJp: '09月30日', dateEn: '2018-09-30' },
- { dateJp: '10月01日', dateEn: '2018-10-01' },
- { dateJp: '10月02日', dateEn: '2018-10-02' },
- { dateJp: '10月03日', dateEn: '2018-10-03' },
- { dateJp: '10月04日', dateEn: '2018-10-04' } ])
- assert_equal(getDateList(new Date("2018-09-24")) ,
- [ { dateJp: '09月27日', dateEn: '2018-09-27' },
- { dateJp: '09月28日', dateEn: '2018-09-28' },
- { dateJp: '09月29日', dateEn: '2018-09-29' },
- { dateJp: '09月30日', dateEn: '2018-09-30' },
- { dateJp: '10月01日', dateEn: '2018-10-01' },
- { dateJp: '10月02日', dateEn: '2018-10-02' },
- { dateJp: '10月03日', dateEn: '2018-10-03' },
- { dateJp: '10月04日', dateEn: '2018-10-04' } ])
- assert_equal(getDateList(new Date("2018-09-25")) ,
- [ { dateJp: '09月28日', dateEn: '2018-09-28' },
- { dateJp: '09月29日', dateEn: '2018-09-29' },
- { dateJp: '09月30日', dateEn: '2018-09-30' },
- { dateJp: '10月01日', dateEn: '2018-10-01' },
- { dateJp: '10月02日', dateEn: '2018-10-02' },
- { dateJp: '10月03日', dateEn: '2018-10-03' },
- { dateJp: '10月04日', dateEn: '2018-10-04' },
- { dateJp: '10月05日', dateEn: '2018-10-05' } ])
Add Comment
Please, Sign In to add comment