export async function bulletJournalMonth(month, year) {
const d = new Date();
let month2 = typeof month === "number" ? month : d.getMonth();
if (typeof year !== "undefined") {
d.setYear(year);
}
d.setMonth(month2 + 1);
d.setDate(0);
const dm = d.getDate();
const half = Math.round(dm / 2);
let column = 0;
let copyOfDate = new Date(d.valueOf());
let pivot = half;
copyOfDate.setDate(half);
const halfDay = copyOfDate.getDay();
if (halfDay >= 3) {
pivot += 7 - halfDay;
} else {
pivot -= halfDay;
}
let md = `| | | | | |\n| --- | --- | --- | --- | --- |\n`;
let dt1 = pivot < 15 ? pivot - 14 : 1;
let dt2 = dt1 + 14;
while (true) {
if (dt1 >= pivot && dt2 > dm) {
break;
}
d.setDate(dt1);
if (dt1 === 1) {
d.setMonth(month2);
}
const wd = d.getDay();
let day = ["S", "M", "T", "W", "T", "F", "S"][wd];
const dt1Str = dt1 >= 1 && dt1 < pivot ? dt1 : "";
const dt2Str = dt2 >= pivot && dt2 <= dm ? dt2 : "";
md += `| \t |\t${dt1Str}\t| **${day}** |\t${dt2Str}\t| \t |\n`;
dt1 += 1;
dt2 += 1;
}
return md;
}