59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
|
|
function analyze(csvData, year, month) {
|
|
const rows = csvData.trim().split('\n');
|
|
const dataArray = rows.map(row => row.split(','));
|
|
|
|
const holidays = getHolidayTable(year, month);
|
|
|
|
|
|
}
|
|
|
|
//プリザンターの祝日テーブルから祝日データを取得する
|
|
async function getHolidayTable(year, month) {
|
|
const holidayTable = '281723';
|
|
const location = 'neo999.next-he.net'; // プリザンターのホスト名を指定
|
|
const holidays = [];
|
|
|
|
//引数のyear,monthの前後1ヶ月の日付おw開始時間終了時間として日付文字列を作成
|
|
year = 2024
|
|
month = 5
|
|
year = Number(year);
|
|
month = Number(month);
|
|
const startDate = new Date(year, month - 2, 1);
|
|
const endDate = new Date(year, month + 1, 0);
|
|
const startTime = `${startDate.getFullYear()}/${startDate.getMonth() + 1}/1 00:00:00`;
|
|
const endTime = `${endDate.getFullYear()}/${endDate.getMonth() + 1}/${endDate.getDate()} 23:59:59`;
|
|
|
|
//プリザンターからデータを取得
|
|
const apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';
|
|
const url = 'https://' + location + '/pleasanter/api/items/' + holidayTable + '/get';
|
|
|
|
const jsonBody = {
|
|
'ApiVersion': 1.1,
|
|
'ApiKey': apiKey,
|
|
'View': {
|
|
'ColumnFilterHash': {
|
|
'DateA': `["${startTime}","${endTime}"]`,
|
|
},
|
|
}
|
|
}
|
|
|
|
const res = await fetch(url, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(jsonBody)
|
|
});
|
|
|
|
const resData = await res.json();
|
|
|
|
for (let data of resData.Response.Data) {
|
|
const holiday = new Date(data.DateHash.DateA);
|
|
const holidayStr = holiday.getFullYear() + '-' +
|
|
(holiday.getMonth() + 1).toString().padStart(2, '0') + '-' +
|
|
(holiday.getDate()).toString().padStart(2, '0');
|
|
holidays.push(holidayStr);
|
|
}
|
|
|
|
return holidays;
|
|
|
|
} |