مقطع لوريم إيبسوم القياسي، المستخدم منذ القرن السادس عشر
لكن لا بد لي من أن أشرح لكم كيف وُلدت هذه الفكرة الخاطئة المتمثلة في إدانة اللذة وتمجيد الألم، وسأقدم لكم شرحًا وافيًا للنظام، وأشرح التعاليم الفعلية لمستكشف الحقيقة العظيم، صانع السعادة البشرية. لا أحد يرفض اللذة نفسها، أو يكرهها، أو يتجنبها، لأنها لذة، بل لأن من لا يعرف كيف يسعى وراءها بعقلانية يواجه عواقب مؤلمة للغاية. كما لا يوجد من يحب أو يسعى وراء أو يرغب في الحصول على الألم في حد ذاته، لأنه ألم، بل لأن ظروفًا تحدث أحيانًا يمكن أن يمنحه فيها العمل والألم متعة كبيرة. لنأخذ مثالًا تافهًا، من منا يمارس تمرينًا بدنيًا شاقًا، إلا للحصول على منفعة منه؟ ولكن من له الحق في انتقاد من يختار الاستمتاع بلذة لا عواقب لها، أو من يتجنب ألمًا لا ينتج عنه متعة؟
document.addEventListener("DOMContentLoaded", function () {
/* -------- Date Helpers -------- */
function addDays(date, days) {
const d = new Date(date);
d.setDate(d.getDate() + days);
return d;
}
function isWorkingDay(date) {
const day = date.getDay(); // 0=Sun, 6=Sat
return day !== 0 && day !== 6; // Mon-Fri only
}
function addWorkingDays(startDate, days) {
let current = new Date(startDate);
let remaining = days;
while (remaining > 0) {
current = addDays(current, 1);
if (isWorkingDay(current)) {
remaining--;
}
}
return current;
}
function formatDate(date) {
return date.toISOString().split('T')[0]; // YYYY-MM-DD
}
/* -------- DOM Wiring -------- */
const calcButton = document.getElementById("calcBtn");
const daysInput = document.getElementById("daysInput");
const typeContainer = document.getElementById("typeContainer");
const dayTypeSelect = document.getElementById("dayType");
const resultDiv = document.getElementById("result");
if (!calcButton || !daysInput || !typeContainer || !dayTypeSelect || !resultDiv) {
console.error("Required DOM elements missing");
return;
}
let enteredDays = 0;
calcButton.addEventListener("click", function () {
enteredDays = parseInt(daysInput.value, 10);
if (!Number.isInteger(enteredDays) || enteredDays < 0) {
resultDiv.textContent = "Please enter a valid non-negative integer.";
resultDiv.style.color = "red";
return;
}
typeContainer.style.display = "block";
dayTypeSelect.value = "";
resultDiv.textContent = "";
});
dayTypeSelect.addEventListener("change", function () {
if (enteredDays === 0) return;
const today = new Date();
let resultDate;
if (dayTypeSelect.value === "working") {
resultDate = addWorkingDays(today, enteredDays);
} else {
resultDate = addDays(today, enteredDays);
}
const formatted = formatDate(resultDate);
resultDiv.textContent = `Result date: ${formatted}`;
resultDiv.style.color = "green";
// Reset
enteredDays = 0;
typeContainer.style.display = "none";
dayTypeSelect.value = "";
daysInput.value = "";
});
});