domingo, 20 de julho de 2008

Quantos dias faltam pro mês acabar?

Um dos meus projetos ainda não realizados é aprender a programar de verdade, ou seja, sem consultar livros, helps e o grande livro branco atrás do código já pronto.



Bom, meu problema não era muito sério nem extremamente esotérico, apenas queria saber quantos dias faltam para acabar o mês contando com o dia de hoje, sem ter que pegar o calendário e contar os dias com a ponta da caneta. O OpenOffice e o quase suicídio de alguns neurônios me deram uma linha curta e simples:

=DAYSINMONTH(TODAY())-DAY(TODAY())+1

Traduzindo:

A função DAYSINMONTH() [dias neste mês em português - com alguma coisa entre os parênteses] diz quantos dias um mês tem, no caso o mês onde este dia - hoje - a função TODAY() [sem nada entre os parênteses, afinal hoje é hoje] vai resultar em 28 (fevereiro), 29 (fevereiro em anos bissextos, 2008 por exemplo), 30 ou 31.

Ótimo, já conseguimos o número de dias do mês.

A função DAY() [com algo entre os parênteses, no caso a função TODAY de novo, ou o nosso famoso hoje] retorna o dia do mês que vaia de 1 a 31, já o dia que apesar de ser apresentado como uma data, no caso de hoje é na realidade o número 39649. O número 1 formatado como data seria o dia 31/12/1899, o 2 seria 1/1/1900 e por aí em diante, são na realidade o número de dias desde uma data fixa, e precisei do dia do mês, um número bem menor

Beleza, subtraindo os dois termos temos a diferença de dias. Assim, somando mais um [unidade, o 1 mesmo], temos o dia de hoje incluído, o famoso daqui a oito dias que o povo tanto fala e que cai no mesmo dia da semana, mesmo ela só tendo sete dias!

Bom, planilhas também a função EASTERSUNDAY(), que colocando o ano entre parênteses nós dá a data do domingo da Páscoa cristã, o que subtraindo 46 dá o dia da Quarta-feira de Cinzas.

A linha ficaria assim para este ano, mesmo a data já tendo passado:

=EASTERSUNDAY(2008)-46

47 dias então resulta na Terça-feira de Carnaval.

Mais sobre as festividades que têm suas datas fixadas em função do domingo de Páscoa podem ser encontrado na Wikipédia em Páscoa e Carnaval.

Bom pra terminar tenho a dizer que no Microsoft Office e BrOffice os códigos devem ser praticamente idênticos só mudando a língua, mas no momento não os tenho disponíveis para verificar. Além do mais o código que postei no começo da postagem resultou mesmo de uma suadinha de meus neurônios. Espero que aproveitem este código simples (é sério mesmo!) que vai me ajudar um pouco.

2 comentários:

Marcelo disse...

Andei trabalhando no cálculo de dias úteis e suas explicações atalhariam muito meu trabalho. Ou seja, tudo que você anotou será muito útil pra muita gente daqui pra frente. Parabéns!

Aguinaldo disse...

Que eu saiba ainda não existe nas planilhas que estão no mercado a função IsHoliday (ÉFeriado) ou IgnoreHolidaysInCouting (IgnoreOsFeriadosNaContagem), e como existe como calcular as datas móveis, sejam elas cristãs, muçulmanas, judias ou seja lá o que for, além das comemorações fixas determinadas por lei, acho realmente estranho as planilhas não fazerem isto automaticamente apenas dependendo de configurações simples. Afinal, o computador deve se adaptar ao ser humano seja lá quem ele seja e não o contrário!

Google Analytics

Related Posts Plugin for WordPress, Blogger...

wibiya widget