mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-01-08 00:32:53 +00:00
feat: integrate system config
This commit is contained in:
101
home/desktops/hyprland/ags/scripts/calendarlayout.js
Normal file
101
home/desktops/hyprland/ags/scripts/calendarlayout.js
Normal file
@@ -0,0 +1,101 @@
|
||||
export function getCalendarLayout(d, highlight) {
|
||||
if (!d) d = new Date();
|
||||
var calendar = [...Array(6)].map(() => Array(7));
|
||||
var today = [...Array(6)].map(() => Array(7));
|
||||
const year = d.getFullYear();
|
||||
const month = d.getMonth() + 1;
|
||||
const day = d.getDate();
|
||||
const weekdayOfMonthFirst = new Date(`${year}-${month}-01`).getDay();
|
||||
const leapYear = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
|
||||
const daysInMonth = (((month <= 7 && month % 2 == 1) || (month >= 8 && month % 2 == 0)) ? 31 : ((month == 2 && leapYear) ? 29 : ((month == 2 && !leapYear) ? 28 : 30)));
|
||||
const daysInNextMonth = ((month == 1 && leapYear) ? 29 : ((month == 1 && !leapYear) ? 28 : ((month == 7 || month == 12) ? 31 : (((month <= 6 && month % 2 == 1) || (month >= 8 && month % 2 == 0)) ? 30 : 31))));
|
||||
const daysInLastMonth = ((month == 3 && leapYear) ? 29 : ((month == 3 && !leapYear) ? 28 : ((month == 1 || month == 8) ? 31 : ((month <= 7 && month % 2 == 1) || (month >= 9 && month % 2 == 0)) ? 30 : 31)));
|
||||
var monthDiff = (weekdayOfMonthFirst == 0 ? 0 : -1);
|
||||
var dim = daysInLastMonth;
|
||||
var toFill = (weekdayOfMonthFirst == 0 ? 1 : (daysInLastMonth + 1 - weekdayOfMonthFirst));
|
||||
var i = 0, j = 0;
|
||||
while (i < 6 && j < 7) {
|
||||
calendar[i][j] = toFill;
|
||||
if (toFill == day && monthDiff == 0 && highlight) today[i][j] = 1;
|
||||
else if (monthDiff == 0) today[i][j] = 0;
|
||||
else today[i][j] = -1;
|
||||
toFill++;
|
||||
if (toFill > dim) {
|
||||
monthDiff++;
|
||||
if (monthDiff == 0) dim = daysInMonth;
|
||||
else if (monthDiff == 1) dim = daysInNextMonth;
|
||||
toFill = 1;
|
||||
}
|
||||
j++;
|
||||
if (j == 7) {
|
||||
j = 0;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
var cal = [];
|
||||
for (var i = 0; i < 6; i++) {
|
||||
var arr = [];
|
||||
for (var j = 0; j < 7; j++) {
|
||||
arr.push({
|
||||
day: calendar[i][j],
|
||||
today: today[i][j]
|
||||
});
|
||||
}
|
||||
cal.push(arr);
|
||||
}
|
||||
|
||||
return cal;
|
||||
}
|
||||
|
||||
export default getCalendarLayout;
|
||||
|
||||
// export function getCalendarLayout(d, highlight) {
|
||||
// if (!d) d = new Date();
|
||||
// var calendar = [...Array(6)].map(() => Array(7));
|
||||
// var today = [...Array(6)].map(() => Array(7));
|
||||
// const year = d.getFullYear();
|
||||
// const month = d.getMonth() + 1;
|
||||
// const day = d.getDate();
|
||||
// const weekdayOfMonthFirst = new Date(`${year}-${month}-01`).getDay();
|
||||
// const leapYear = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
|
||||
// const daysInMonth = (((month <= 7 && month % 2 == 1) || (month >= 8 && month % 2 == 0)) ? 31 : ((month == 2 && leapYear) ? 29 : ((month == 2 && !leapYear) ? 28 : 30)));
|
||||
// const daysInNextMonth = ((month == 1 && leapYear) ? 29 : ((month == 1 && !leapYear) ? 28 : ((month == 7 || month == 12) ? 31 : (((month <= 6 && month % 2 == 1) || (month >= 8 && month % 2 == 0)) ? 30 : 31))));
|
||||
// const daysInLastMonth = ((month == 3 && leapYear) ? 29 : ((month == 3 && !leapYear) ? 28 : ((month == 1 || month == 8) ? 31 : ((month <= 7 && month % 2 == 1) || (month >= 9 && month % 2 == 0)) ? 30 : 31)));
|
||||
// var monthDiff = (weekdayOfMonthFirst == 1 ? 0 : -1);
|
||||
// var dim = daysInLastMonth;
|
||||
// var toFill = (weekdayOfMonthFirst == 1 ? 1 : (weekdayOfMonthFirst == 0 ? (daysInLastMonth - 5) : (daysInLastMonth + 2 - weekdayOfMonthFirst)));
|
||||
// var i = 0, j = 0;
|
||||
// while (i < 6 && j < 7) {
|
||||
// calendar[i][j] = toFill;
|
||||
// if (toFill == day && monthDiff == 0 && highlight) today[i][j] = 1;
|
||||
// else if (monthDiff == 0) today[i][j] = 0;
|
||||
// else today[i][j] = -1;
|
||||
// toFill++;
|
||||
// if (toFill > dim) {
|
||||
// monthDiff++;
|
||||
// if (monthDiff == 0) dim = daysInMonth;
|
||||
// else if (monthDiff == 1) dim = daysInNextMonth;
|
||||
// toFill = 1;
|
||||
// }
|
||||
// j++;
|
||||
// if (j == 7) {
|
||||
// j = 0;
|
||||
// i++;
|
||||
// }
|
||||
// }
|
||||
// var cal = [];
|
||||
// for (var i = 0; i < 6; i++) {
|
||||
// var arr = [];
|
||||
// for (var j = 0; j < 7; j++) {
|
||||
// arr.push({
|
||||
// day: calendar[i][j],
|
||||
// today: today[i][j]
|
||||
// });
|
||||
// }
|
||||
// cal.push(arr);
|
||||
// }
|
||||
|
||||
// return cal;
|
||||
// }
|
||||
|
||||
// export default getCalendarLayout;
|
||||
Reference in New Issue
Block a user