指定月、指定曜日の日付一覧書きだしくん
Scrapboxで日付一覧のリンクが欲しいときが毎月1度くらいあるため作った
https://gyazo.com/78d4e580fcf83c299347a82692465050
code:javascript.js
function writeDatesToSheet() {
// 指定した年月と曜日を入力します
let year = 2024; // 年
let month = 8; // 月(1月が1なので、7は7月)
let targetDays = 1, 3, 6; // 曜日を指定(1が月曜) let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear(); // 既存のデータをクリア
let startDate = new Date(year, month - 1, 1); // 指定した年月の初日
let dayOfWeek = startDate.getDay(); // 初日の曜日
let dates = [];
// 曜日ごとに日付をリストに追加
while (startDate.getMonth() === month - 1) {
if (targetDays.includes(dayOfWeek)) {
dates.push(new Date(startDate));
}
startDate.setDate(startDate.getDate() + 1);
dayOfWeek = startDate.getDay();
}
// 日付を降順にソート
dates.sort(function(a, b) {
return b - a;
});
// スプレッドシートに書き出し
let rowIndex = 1;
dates.forEach(function(date) {
sheet.getRange('A' + rowIndex).setValue(formatDate(date));
rowIndex++;
});
}
// 日付を yyyy-mm-dd 形式でフォーマットする関数
function formatDate(date) {
let year = date.getFullYear();
let month = ('0' + (date.getMonth() + 1)).slice(-2);
let day = ('0' + date.getDate()).slice(-2);
return '+ year + '-' + month + '-' + day + '';
}