Javascript - Último dia do mês

by Luiz Paulo | novembro 14, 2008 | 11 Comments »

Essa semana, eu precisei de uma solução em Javascript para encontrar o "último dia do mês" ou "quantidade de dias do mês" como preferir. Consultei o Google e encontrei algumas soluções, algumas delas mais simples e outras bem criativas.

Achei o assunto interessante e resolvi divulgar aqui para quem precisar utilizar.

Primeiro vou postar as soluções sérias para o pessoal que está pesquisando e precisa utilizar em seu código

Soluções simples

Exemplo longo (função):

function daysInMonth(month,year) {
	var m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	if (month != 2) return m[month - 1];
	if (year % 4 != 0) return m[1];
	if (year % 100 == 0 && year%400 != 0) return m[1];
 
	return m[1] + 1;
}

Exemplo curto (função):
Aqui está a grande sacada do javaScript, que interpreta o 0(zero) como "o dia antes do dia primeiro" que obviamente é o último dia do mês anterior.

function daysInMonth(month,year) {
	var dd = new Date(year, month, 0);
	return dd.getDate();
}

Exemplo curto (inline):

var lastDay = (new Date(year, month, 0)).getDate();

Soluções criativas

Não se assustem, mas as soluções citadas abaixo funcionam!

Solução utilizando Switch:

function getLastDayOfMonth(month,year)
{
	var day;
 
	switch(month)
	{
		case 1 :
		case 3 :
		case 5 :
		case 7 :
		case 8 :
		case 10:
		case 12:
			day = 31;
			break;
		case 4 :
		case 6 :
		case 9 :
		case 11:
		   	day = 30;
			break;
		case 2 :
			if( ( (year % 4 == 0) && ( year % 100 != 0) ) || (year % 400 == 0) )
				day = 29;
			else
				day = 28;
			break;
 
	}
	return day;
}

Essa é legal

function anoBissexto(anoCompleto) 
{
	if(!(anoCompleto%4) && (anoCompleto%100 || !(anoCompleto%400))) return true;
	return false;
}
function diasNoMes(mes,ano)
{
	var var_type=typeof mes;
	if(var_type != "number" && var_type != "string") return false;
	if(var_type == "number" && (mes > 11 || mes < 0) && !isInt(mes)) return false;
	var eng_args_allowed = "january-february-march-april-may-june-july-august-september-october-november-december";
	var bra_args_allowed = "janeiro-fevereiro-marçomarco-abril-maio-junho-julho-agosto-setembro-outubro-novembro-dezembro";
	var vet_eng_args_allowed = eng_args_allowed.split("-");
	var vet_bra_args_allowed = bra_args_allowed.split("-");
	var datahj = new Date();
	var anohj = datahj.getFullYear();
	var dias = [31,anoBissexto(ano)?29:28,31,30,31,30,31,31,30,31,30,31];
 
	if(var_type == "string")
	{
		indice_eng = keyPosMatch(vet_eng_args_allowed,mes);
		indice_bra = keyPosMatch(vet_bra_args_allowed,mes);
		if(indice_eng>=0) return dias[indice_eng];
		if(indice_bra>=0) return dias[indice_bra];
		return false;
	}
	else return dias[mes];
}

Façam bom proveito!

Categorias: Desenvolvimento web, JavaScript, Linguagens
Tags: , , , ,

Traduzindo textos direto no gTalk

by Luiz Paulo | outubro 9, 2008 | 4 Comments »

Google Talkengine
Um recurso muito útil para quem precisa traduzir textos constantemente é a tradução de textos diretamente no Google Talk.

Já utilizo esse software há algum tempo como alternativa ao MSN além de muito (muito, muito...) mais leve e estável, as mensagens chegam quase que instantâneas, enquanto o MSN, dependendo do dia, você pode mandar uma mensagem e demorar horas. O serviço de voz também é muito bom.

Para utilizar esse recurso, basta adicionar um contato a seu Google Talk, e enviar as mensagens (Simples assim! )

Por exemplo, para traduzir de inglês para português:

Adicione como contato: en2pt@bot.talk.google.com

Envie mensagens em inglês e ele te responderá a tradução em português.

Legal, não!?

Testei esse recurso em en2pt e pt2en e funcionou perfeitamente. Não pesquisei se traduz de qualquer linguagem para qualquer linguagem, mas fica a dica!

Categorias: Artigo, Ferramentas, Java, Linguagens
Tags: , , , , ,

CheatSheet - PhotoShop

by Luiz Paulo | outubro 7, 2008 | No Comments »

O Cheat Sheet é um resumo de um assunto específico que pode ser utilizada como guia rápido. Nele você pode encontrar sintaxes, códigos, exemplos, conceitos e dicas.

Não podemos considerá-lo um manual completo pois é bem compacto, mas quebra bastante o galho! Além de úteis, normalmente são feitos com visual agradável, podendo ser impresso e facilmente colado no seu escritório.

Achei alguns cheatSheet sobre photoshop ótimos! Contém vários atalhos e ferramentas, vale apena conferir!

Baixe os cheatSheets de Photoshop e façam bom proveito!

Coletânea de atalhos sobre várias versões do PhotoShop

Coletânea sobre ferramentas e atalhos

Categorias: CheatSheet, Design
Tags: , , , , , , , , ,

O Google caiu por alguns minutos

by Luiz Paulo | setembro 30, 2008 | 3 Comments »

Não pude deixar de comentar esse fato.

O Google caiu por alguns minutos! :(

Agora já voltou, mas deu tempo de tirar o print!

Tela do Google fora

Enfim, está registrado...
Como diria o Raul Seixas, "O dia em que o Google parou!" rsrsrs

[]'s

Categorias: Artigo, Browser
Tags: , , , ,

CheatSheet - Guia rápido de CSS

by Luiz Paulo | setembro 29, 2008 | 1 Comment »

O Cheat Sheet é um resumo de um assunto específico que pode ser utilizada como guia rápido. Nele você pode encontrar sintaxes, códigos, exemplos, conceitos e dicas.

Não podemos considerá-lo um manual completo pois é bem compacto, mas quebra bastante o galho! Além de úteis, normalmente são feitos com visual agradável, podendo ser impresso e facilmente colado no seu escritório.

Baixe os cheatSheets de CSS e façam bom proveito!

tableless.com CSS cheatSheets (Formato PDF)

Liquidicity CSS help sheets (Formato PDF)

CSS cheatSheets (FormatoHTML)

CSS cheatSheets v2 (Formato PDF ou PNG)

CSS Shorthand cheatSheets (Formato PDF)

Categorias: Artigo, CSS, CheatSheet, Desenvolvimento web, Linguagens
Tags: , , , ,

Próximos posts »

 

Sobre

Foto Luiz Paulo

Sou desenvolvedor web desde 2000, atuei em grandes projetos web2.0. Atualmente trabalho na Automatos junto à equipe de site desenvolvendo projetos web2.0 e utilizando como server-side a linguagem java.

Para saber mais sobre mim, acesse Meus Links ›


Valid XHTML 1.0 Strict Valid CSS!

Luiz Paulo | tecnologia web