Skip to content

Instantly share code, notes, and snippets.

@X140Yu
Created January 1, 2022 16:07
Show Gist options
  • Save X140Yu/ef1f62d88a433d385780008890223fee to your computer and use it in GitHub Desktop.
Save X140Yu/ef1f62d88a433d385780008890223fee to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
// Required parameters:
// @raycast.schemaVersion 1
// @raycast.title zxy-generate notion daily titles
// @raycast.mode fullOutput
// Optional parameters:
// @raycast.icon 🤖
// Documentation:
// @raycast.author Xinyu
// @raycast.authorURL https://github.com/X140Yu
var days = [
"Sat",
"Sun",
"Mon",
"Tues",
"Wed",
"Thur",
"Fri",
];
const month = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
];
function getWeekNumber(d) {
// Copy date so don't modify original
d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
// Set to nearest Thursday: current date + 4 - current day number
// Make Sunday's day number 7
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 8));
// Get first day of year
var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
// Calculate full weeks to nearest Thursday
var weekNo = Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
// Return array of year and week number
return weekNo
}
const date = new Date();
let monthName = month[date.getMonth()];
let year = date.getFullYear();
console.log(`# ${monthName} ${year}`);
console.log(`## Plan\n## Summary\n\n`);
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(
date.getFullYear(),
date.getMonth(),
new Date(date.getFullYear(), date.getMonth(), 0).getDate()
);
let lastWeekNumber = getWeekNumber(lastDay) + 1;
for (let i = lastDay.getDate(); i >= 1; i--) {
let day = new Date(date.getFullYear(), date.getMonth(), i+1);
let currentWeekNumber = getWeekNumber(day);
if (currentWeekNumber !== lastWeekNumber) {
console.log("\n# Week " + currentWeekNumber);
console.log("## Plan\n## Summary");
lastWeekNumber = currentWeekNumber;
console.log(">## Days");
}
console.log(`### ${day.toISOString().split("T")[0]} ${days[day.getDay()]}`);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment