МАРТ 2025 | ||||||
---|---|---|---|---|---|---|
Вс | Пн | Вт | Ср | Чт | Пт | Сб |
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
<SCRIPT LANGUAGE="JavaScript"> <!-- // Alex Alexandrov wrote: // This scrpt was taken from a book called "Learn Advanced Java Script" Chapter 14. // The guys who wrote that book wanted us to leave a copyright. So here it goes: // THIS SCRPIT IS COPYRIGHTED// // Be AWARE TO PUT IT ON YOUR PAGE// // Boolean variable specified if alert should be displayed if cookie exceeds 4KB var caution = false // name - name of the cookie // value - value of the cookie // [expires] - expiration date of the cookie (defaults to end of current session) // [path] - path for which the cookie is valid (defaults to path of calling document) // [domain] - domain for which the cookie is valid (defaults to domain of calling document) // [secure] - Boolean value indicating if the cookie transmission requires a secure transmission // * an argument defaults when it is assigned null as a placeholder // * a null placeholder is not required for trailing omitted arguments function setCookie(name, value, expires, path, domain, secure) { var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "") if (!caution || (name + "=" + escape(value)).length <= 4000) document.cookie = curCookie else if (confirm("Cookie превышает 4KB и будет вырезан !")) document.cookie = curCookie } // name - name of the desired cookie // * return string containing value of specified cookie or null if cookie does not exist function getCookie(name) { var prefix = name + "=" var cookieStartIndex = document.cookie.indexOf(prefix) if (cookieStartIndex == -1) return null var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length) if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex)) } // name - name of the cookie // [path] - path of the cookie (must be same as path used to create cookie) // [domain] - domain of the cookie (must be same as domain used to create cookie) // * path and domain default if assigned null or omitted if no explicit argument proceeds function deleteCookie(name, path, domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT" } } function fixDate(date) { var base = new Date(0) var skew = base.getTime() if (skew > 0) date.setTime(date.getTime() - skew) } function initCookie(monthName) { // initializes cookie with the following format: // ^1^^2^^3^^4^...^30^^31^ // initialize accumulative variable var text = "" for (var i = 1; i <= 31; ++i) { text+= "^" + i + "^" } var now = new Date() fixDate(now) // set time to one month(31 days) in the future now.setTime(now.getTime() + 1000* 60 * 60 * 24 * 31) setCookie(monthName +"Calendar", text, now) } function getSpecificReminder(num, monthName) { var prefix= "^"+ num + "^" var totalCookie = getCookie(monthName + "Calendar") var startIndex = totalCookie.indexOf(prefix, 0) var startData = totalCookie.indexOf("^", startIndex+ 1) + 1 if (num = = 31) var endData = totalCookie.length else var endData= totalCookie.indexOf("^", startData) returntotalCookie.substring(startData, endData) } function setSpecificReminder(num, monthName, newValue) { var prefix= "^" + num + "^" var totalCookie= getCookie(monthName + "Calendar") var startIndex = totalCookie.indexOf(prefix, 0) var startData = totalCookie.indexOf("^", startIndex + 1) + 1 if (num = = 31) var endData= totalCookie.length else var endData= totalCookie.indexOf("^", startData) var now = new Date() fixDate(now) // set time to one month (31 days) in the future now.setTime(now.getTime() + 1000 * 60 * 60 * 24 * 31) setCookie(monthName + "Calendar", totalCookie.substring(0, startData) + newValue + totalCookie.substring(endData, totalCookie.length), now)} function getInput(num, monthName) { if (!getCookie(monthName + "Calendar")) initCookie(monthName) var newValue = prompt("Введите запись соответствующей данной дате:", getSpecificReminder(num, monthName)) if (newValue) // user did not cancel setSpecificReminder(num, monthName, newValue) } function getTime() { // initialize time-related variables with current time settings var now = new Date() var hour = now.getHours() var minute = now.getMinutes() now = null var ampm = "" // validate hour values and set value of ampm if (hour > = 12) { hour -= 12 ampm = "PM" } else ampm = "AM" hour = (hour == 0) ? 12 : hour // add zero digit to a one digit minute if (minute < 10) minute = "0" + minute // do not parse this number! // return time string return hour + ":" + minute + " " + ampm } function leapYear(year) { if (year % 4 == 0) // basic rule return true // is leap year return false // is not leap year } function getDays(month, year) { // create array to hold number of days in each month var ar = new Array(12) ar[0] = 31 // January ar[1] = (leapYear(year)) ? 29 : 28 // February ar[2] = 31 // March ar[3] = 30 // April ar[4] = 31 // May ar[5] = 30 // June ar[6] = 31 // July ar[7] = 31 // August ar[8] = 30 // September ar[9] = 31 // October ar[10] = 30 // November ar[11] = 31 // December // return number of days in the specified month (parameter) return ar[month] } function getMonthName(month) { // create array to hold name of each month var ar = new Array(12) ar[0] = "ЯНВАРЬ" ar[1] = "ФЕВРАЛЬ" ar[2] = "МАРТ" ar[3] = "АПРЕЛЬ" ar[4] = "МАЙ" ar[5] = "ИЮНЬ" ar[6] = "ИЮЛЬ" ar[7] = "АВГУСТ" ar[8] = "СЕНТЯБРЬ" ar[9] = "ОКТЯБРЬ" ar[10] = "НОЯБРЬ" ar[11] = "ДЕКАБРЬ" // return name of specified month (parameter) return ar[month] } function setCal() { // standard time attributes var now = new Date() var year = now.getYear() var month = now.getMonth() var monthName = getMonthName(month) var date = now.getDate() now = null // create instance of first day of month, and extract the day on which it occurs var firstDayInstance = new Date(year, month, 1) var firstDay = firstDayInstance.getDay() firstDayInstance = null // number of days in current month var days = getDays(month, year) // call function to draw calendar drawCal(firstDay + 1, days, date, monthName, 1900 + year) } function drawCal(firstDay, lastDate, date, monthName, year) { // constant table settings var headerHeight = 35 // height of the table's header cell var border = 0 // 3D height of table's border var cellspacing = 0 // width of table's border var headerColor = "00008b" // color of table's header var headerSize = "+2" // size of tables header font var colWidth = 45 // width of columns in table var dayCellHeight = 15 // height of cells containing days of the week var dayColor = "000000" // color of font representing week days var cellHeight = 25 // height of cells representing dates in the calendar var todayColor = "red" // color specifying today's date in the calendar var timeColor = "purple" // color of font representing current time var dayCellcolor="87ceda" var monthColor="6485ed" // create basic table structure var text = "" // initialize accumulative variable to empty string text += '<CENTER>' text += '<TABLE BORDER=' + border + ' CELLSPACING= ' + cellspacing +'>' // table settings text += '<TH COLSPAN=7 HEIGHT=' + headerHeight + ' BGCOLOR= '+ monthColor+'>' // create table header cell text += '<FONT COLOR="' + headerColor + '" SIZE= ' + headerSize +'>' // set font for table header text += monthName + ' ' + year text += '</FONT>' // close table header's font settings text += '</TH>' // close header cell // variables to hold constant settings var openCol = '<TD align=right WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + ' BGCOLOR= '+ dayCellcolor+'>' openCol += '<FONT SIZE=-1 COLOR= "' + dayColor+ '">' var closeCol='</FONT></TD>' // create array of abbreviated day names var weekDay = new Array(7) weekDay[0] = "Вс" weekDay[1] = "Пн" weekDay[2] = "Вт" weekDay[3] = "Ср" weekDay[4] = "Чт" weekDay[5] = "Пт" weekDay[6] = "Сб" // create first row of table to set column width and specify week day text += '<TR ALIGN= "center"VALIGN="center">' for (var dayNum = 0; dayNum < 7; ++dayNum) { text += openCol + weekDay[dayNum] + closeCol } text += '</TR>' // declaration and initialization of two variables to help with tables var digit = 1 var curCell = 1 for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) { text += '<TR ALIGN= "right"VALIGN="top">' for (var col = 1; col <= 7; ++col) { if (digit > lastDate) break if (curCell < firstDay) { text +='<TD></TD>'; curCell++ } else { if (digit == date) { // current cell represent today's date text += '<TD HEIGHT= ' + cellHeight + 'BGCOLOR="#00FFFF">' text += '<FONT COLOR= "' + todayColor +'">' text += '<A HREF="javascript:getInput(' + digit + ', \'' + monthName + '\')" onMouseOver="window.status = \'Записать или прочесть запись за ' + monthName + ' ' + digit + '\'; returntrue"><FONT SIZE=-1 COLOR= "' +todayColor + '">' + digit+'</FONT></A>' text += '<BR>' text += '<FONT COLOR= "' + timeColor + '"SIZE= 2>' text += '<CENTER>' + getTime() +'</CENTER>' text += '</FONT>' text += '</TD>' } else text += '<TD HEIGHT= ' + cellHeight + 'BGCOLOR= "#C0C0C0"><FONTSIZE=-1><A HREF="javascript:getInput(' + digit + ', \'' + monthName + '\')" onMouseOver="window.status = \'Записать или прочесть запись за ' + monthName + ' ' + digit+ '\'; return true">' +digit+'</A></FONT></TD>' digit++ } } text += '</TR>' } // close all basic table tags text += '</TABLE>' text += '</CENTER>' // print accumulative HTML string document.write(text) } setCal() // -->