Função Calendário
Publicado por Fernando Rodrigo Bilinski 30/01/2004
[ Hits: 18.240 ]
Trata-se de uma função orientada ao objeto que retorna o código HTML para o mês ou ano especificado.
/* * Função calendário: * * Retorna o código HTML para montar um calendário de um mês ou ano * * Cal.monthCal( [month , year] ) * Cal.yearCal( [year] ) * Cal.setMonth( [month [, year] ) * Cal.setYear( [year] ) * * month = 0...11 | 'today' | 'next' | 'prev' | 'now' * year = number | 'today' | 'next' | 'prev' | 'now' */ function Calendar(name,year,month){ this.Month = Today.getMonth(); this.Year = Today.Year; this.ThisDate = 0; this.weekHeadMonth = new Array("Dom","Seg","Ter","Qua","Qui","Sex","Sab"); this.weekHeadYear = new Array("D","S","T","Q","Q","S","S"); this.monthNames = new Array("Janeiro","Fevereiro","Março","Abril","Maio", "Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"); this.firstDay = 0; this.weekColor = "black"; this.weekendColor = "red"; this.bgColor = ""; this.borderMonth = 2; this.spacingMonth = 1; this.paddingMonth = 2; this.borderYear = 3; this.spacingYear = 2; this.paddingYear = 7; this.cellWidth = 0; this.fontFamily = "arial"; this.fontSize = 3; this.fontWeight = "plain"; this.todayFontColor = ""; this.todayFontSize = 3; this.todayFontWeight = "strong"; this.headFontColor = "black"; this.headFontFamily = "arial"; this.headFontSize = 3; this.headFontWeight = "strong"; this.monthLen = Calendar.monthLen; this.monthName = Calendar.monthName; this.setMonthNames = Calendar.setMonthNames; this.setYearWeek = Calendar.setYearWeek; this.setMonthWeek = Calendar.setMonthWeek; this.monthCal = Calendar.monthCal; this.setMonth = Calendar.setMonth; this.setYear = Calendar.setYear; this.yearCal = Calendar.yearCal; if (!window.calendars) window.calendars = new Array(); this.name = name || "Calendar"+ window.calendars.length; window.calendars[this.name] = this; window.calendars[window.calendars.length] = this; this.setMonth(month,year); } Calendar.monthLen = function() { var len = ((this.Month % 7) % 2 == 1)? 30 : 31; if (this.Month == 1) len = (this.Year % 4 == 0)? 29 : 28; return len; } Calendar.monthName = function() { return this.monthNames[this.Month]; } Calendar.setMonthNames = function() { var args = Calendar.setMonthNames.arguments; for (var i = 0; i<args.length; i++) this.monthNames[i] = args[i]; } Calendar.setYearWeek = function(su,mo,tu,we,th,fr,sa) { var args = Calendar.setYearWeek.arguments; for (var i = 0; i<args.length; i++) this.weekHeadYear[i] = args[i]; } Calendar.setMonthWeek = function(su,mo,tu,we,th,fr,sa) { var args = Calendar.setMonthWeek.arguments; for (var i = 0; i<args.length; i++) this.weekHeadMonth[i] = args[i]; } Calendar.setMonth = function(month, year) { if (month) { if(typeof(month) == 'number' && (month >= 0 && month < 12)) this.Month = month; else if (month == 'today') { this.Year = Today.Year; this.Month = Today.getMonth(); } else if (month == 'prev') { if (--this.Month == -1) { this.Month = 11; --this.Year; } } else if (month == 'next') { if (++this.Month == 12) { this.Month = 0; ++this.Year; } } else if (month != 'now') alert('Unknown month: '+ month); } if (typeof(year) != 'undefined') this.setYear(year); this.ThisDate = (this.Month == Today.getMonth() && this.Year == Today.Year)? Today.getDate() : 0; } Calendar.setYear = function(year) { if(typeof(year) != 'undefined') { if (typeof(year) == 'number') { this.Year = (year < 100 && year >= 0)? year + 1900 : year; } else if (year == 'today') this.Year = Today.Year; else if (year == 'prev') --this.Year; else if (year == 'next') ++this.Year; else if (year != 'now') alert('Unknown year: '+ year); } this.ThisDate = 0; } Calendar.monthCal = function(month, year) { this.setMonth(month, year); var first = new Date(this.Year,this.Month,1); var day = 0; var lastDate = this.monthLen(); var color; var str = '<TABLE WIDTH='+ (7*this.cellWidth + 8*this.spacingMonth + 14*this.paddingMonth) +' CELLSPACING='+ this.spacingMonth +' CELLPADDING='+ this.paddingMonth +' BORDER='+ this.borderMonth +' BGCOLOR="'+ this.bgColor +'">'; str += '<TR><TH COLSPAN=7>'+ fontTag(this.headFontFamily,this.headFontSize,this.headFontColor,this.headFontWeight) + this.monthName() +' '+ this.Year +'</FONT></TH></TR>\n<TR ALIGN="center">\n'; for (day=this.firstDay; day<this.firstDay+7; day++) str += ' <TD WIDTH='+ this.cellWidth +'>'+ fontTag(this.fontFamily,this.fontSize,this.headFontColor,this.headFontWeight) + this.weekHeadMonth[day%7] +'</FONT></TD>'; day = first.getDay(); if (day != this.firstDay) { str += '\n</TR>\n<TR ALIGN="center">\n' + ' <TD COLSPAN='+ ((day+7-this.firstDay)%7) +'> </TD>'; } for (date=1; date <= lastDate; date++, day=(++day)%7) { if (day == this.firstDay) str += '\n</TR>\n<TR ALIGN="center">\n'; str += ' <TD WIDTH='+ this.cellWidth +'>'; color = (day==0 || day==6)? this.weekendColor : this.weekColor; if (date == this.ThisDate) { color = this.todayFontColor || color; str += fontTag(this.fontFamily, this.todayFontSize, color, this.todayFontWeight); } else { str += fontTag(this.fontFamily, this.fontSize, color, this.fontWeight); } str += date +'</FONT></TD>'; } if ((this.firstDay-day)%7 != 0 ) str += ' <TD COLSPAN='+ ((this.firstDay+7-day)%7) +'> </TD>'; str += '\n</TR>\n</TABLE>\n'; return str; } Calendar.yearCal = function (year) { this.setYear(year); var saveMonth = this.Month; var saveBorder = this.borderMonth; this.borderMonth = 0; var saveWeekHead = this.weekHeadMonth; this.weekHeadMonth = this.weekHeadYear; var str = '<TABLE BORDER="'+ this.borderYear +'" CELLPADDING='+ this.paddingYear +' CELLSPACING="'+ this.spacingYear +' BGCOLOR="'+ this.bgColor +'">\n' + '<CAPTION><H2>'+ fontTag(this.headFontFamily,'',this.headFontColor,this.headFontWeight) + this.Year +'</H2></CAPTION>\n'; for (var row = 0; row < 4; row++) { str += '<TR VALIGN=TOP>\n'; for (this.Month = 3*row; this.Month < 3*row + 3; this.Month++) str += '<TD>'+ this.monthCal() +'</TD>\n'; str += '</TR>\n'; } str += '</TABLE>\n'; this.Month = saveMonth; this.borderMonth = saveBorder; this.weekHeadMonth = saveWeekHead; return str; } function fontTag(family,size,color,weight) { var font = '<FONT'; if (family) font += ' FACE="'+ family +'"'; if (size) font += ' SIZE="'+ size +'"'; if (color) font += ' COLOR="'+ color +'"'; font += '>' if (weight && weight != "plain") font += '<'+ weight +'>'; return font; } if (!Today) var Today = new Date(); if (!Today.Year) { Today.Year = Today.getYear() % 100; Today.Year += (Today.Year < 38) ? 2000 : 1900; }
Script que faz o Navegador Tremer
Manda Mensagem Icq ao clicar no link
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta