Created
June 18, 2018 06:02
-
-
Save S2/03c343e1029aff6f71ce3419f22acdd8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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' } ]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment