by Luiz Paulo
| dezembro 25, 2008
| 1 Comment »
Como prometi anteriormente, vou criar um post com as soluções sobre como pegar o último dia dos mês. Todas as soluções postadas aqui, foram comentadas no post: Javascript - Último dia do mês onde falei sobre esse assunto.
Bem, não tive como testar todos, até por que tem linguagem aí embaixo que nunca utilizei 
Se tiver algum erro, fiquem a vontade para comentar que eu acerto, blz?
Segue as soluções e seus respectivos criadores / postadores.
Último dia do mês em PHP:
Comment: Luiz Paulo
<?php
$year = 2008;
$month = 2;
echo date("t", mktime(0, 0, 0, $month, 1, $year));
?>
Último dia do mês em JAVA:
Comment: Felipe Zappala
System.out.println(new SimpleDateFormat("dd").format(new Date(2008,2,0)));
System.out.println(new GregorianCalendar(2008,2,0).get(Calendar.DAY_OF_MONTH));
Último dia do mês em Python:
Comment: Rodrigo Cacilhas
last_day = calendar.monthrange(year, month)[1]
Último dia do mês em Lua:
Comment: Rodrigo Cacilhas
function lastday(year, month)
return 0 + os.date(
"%d",
os.time {
year = year
month = month + 1
day = 0
}
)
end
Último dia do mês em Objective-C (do Mac OS X):
Comment: Rodrigo Cacilhas
int lastday(int year, int month) {
id date = [NSDate
dateWithString: [NSString
stringWithFormat: @"%d-%d-01 00:00:00 +000", year, month
]
];
[date addTimeInterval: -86400.];
id day = [date
descriptionWithCalendarFormat: @"%d"
timeZone: [NSTimeZone defaultTimeZone]
locale: nil
];
return [day intValue];
}
Último dia do mês em Rails:
Comment: Valdinei dos Santos
d = Date.new(2008,11)
d.end_of_month
=> Sun, 30 Nov 2008
Último dia do mês em Smalltalk:
Comment: Rodrigo Cacilhas
lastDayOfMonth: m year: y
| aux |
m := m + 1.
(m = 13) ifTrue: [
m := 1.
y := y + 1.
].
aux := Date year: y month: m day: 1.
aux := aux addDays: -1.
↑ aux dayOfMonth
!
Último dia do mês em Common Lisp:
Comment: Rodrigo Cacilhas
(defun last-day-of-month (y m)
(setq m (+ m 1))
(when (= m 13)
(setq m 1)
(setq y (+ y 1)))
(multiple-value-bind
(*sec* *min* *hour* *day* *month* *year* *date-of-week* *dst-p* *tz*)
(decode-universal-time
(-
(encode-universal-time 0 0 0 1 m y)
86400))
*day*))
Último dia do mês em Fortran-90:
Comment: Guilherme Gualberto
program Hora_e_data
interger ,parameter:: n = 3
interger :: data(n),horaSys(n)
call idate(data)
! data(1)=dia, data(2)=mes data(3)=ano
call itime(horaSys)
! horaSys(1)=hora, horaSys(2)=minute,horaSys(3)=second
write(*,'('Date ', i2.2, '/', i2.2, '/', i4.4, '; time ',i2.2, ':', i2.2, ':', i2.2)')data(2), data(1), data(3), now
endprogram
Último dia do mês em C#:
Comment: Fabio Caldas
int year = 2008;
int month = 09;
int daysInMonth = DateTime.DaysInMonth(year,month);
Grande abraço aos amigos que postaram! Agradeço a todos... Tenho certeza que esses códigos ajudarão a muitas pessoas
Categorias: Linguagens, Tecnologia
Tags: , c, fortran, java, lisp, lua, objective-c, php, pyton, rails, ruby, smalltalk
by Luiz Paulo
| setembro 26, 2008
| 5 Comments »
A internacionalização é um diferencial para qualquer projeto, independente da linguagem que você utilize. É importante que você saiba alguma técnica para essa funcionalidade.
Desenvolver sistemas web com JAVA se torna bem simples se bem feito, mais simples ainda quando utilizamos bibliotecas como o JSTL. Vamos ver como é simples criar um sistema web com internacionalização em JAVA.
Nesse tutorial veremos como trabalhar com internacionalização em sistemas web utilizando JSP e a biblioteca JSTL.
Vamos direto para a prática!
Utilizaremos o Eclipse como API para desenvolvimento JAVA, partindo de um projeto web já criado.
Primeiro passo
Antes de começar a escrever código, você precisa baixar a biblioteca JSTL. Utilizaremos os pacotes standard.jar e jstl.jar.
Copie as duas bibliotecas para o diretório /WebContent/WEB-INF/lib/ ou para o diretório de libs do JAKARTA, para que sejam enxergadas pelo seu projeto.
Segundo passo
Vamos criar os arquivos de tokens.
Devemos definir o pacote para os arquivos. No nosso caso vamos colocar em:
com.lppjunior.blog.controller.messages
Criaremos 2 arquivos de tokens dentro desse pacote:
messages_pt.properties
My_first_test=Meu primeiro teste
Hello_World=<h1>Olá Mundo</h1>
messages_en.properties
My_first_test=My first test
Hello_World=<h1>Hello World</h1>
O arquivo de token é formado por TOKEN_NAME=VALUE sempre!
Não utilize espaço, acento ou qualquer caractere no TOKEN_NAME, e não utilize quebra de linha no VALUE, quando precisar desse tipo de recurso, utilize \n ou a tag br no caso de HTML.
Perceba no exemplo acima que coloquei tags HTML no Hello_World para ilustrar a possibilidade, mas o ideal é utilizarmos as tags no próprio código HTML.
Terceiro passo
Vamos criar um HTML bem simples já com as tags e as chamadas para as tokens.
Veja o exemplo:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:setLocale value="pt" />
<fmt:setBundle basename="com.lppjunior.blog.controller.messages.messages" />
<html>
<head>
<title><fmt:message key="Internacionalization_test" /></title>
</head>
<body>
<fmt:message key="My_first_test" />
<fmt:message key="Hello_World" />
<hr />
<fmt:message key="Test_undefined_token" />
</body>
</html>
Definições:
- Primeiro importamos a tagLib "fmt" para utilização do recurso de internacionalização;
- Configuramos a linguagem que desejamos utilizar (nesse caso "pt" Português);
- Configuramos a localização dos arquivos de tokens (repare quem além do pacote, precisamos colocar o início do nome do arquivo "messages" - O JSTL concatena [bundle + "_" + locale] para achar o arquivo);
- Utilizamos a tag "fmt:message" para retornar o conteúdo das tokens.
Resultado final:
<html>
<head>
<title>Meu primeiro teste</title>
</head>
<body>
<h1>Olá Mundo</h1>
<hr />
???Test_undefined_token???
</body>
</html>
Repare que deu um erro na token "???Test_undefined_token??? ". Isso aconteceu, pois a token "Test_undefined_token" não foi definida em nosso arquivo "messages_pt.properties", para resolver o problema basta defini-la.
Baixe aqui o projeto
É importante dizer que essa é uma das formas mais simples de criar a internacionalização. Em um projeto real, você pode isolar e definir as configurações dinamicamente, para que sejam reaproveitadas por todo o projeto.
Existe uma outra forma para configurar o JSTL para internacionalização, utilizando o web.xml, mas não achei necessário citar nesse tutorial.
Categorias: Desenvolvimento web, Java, Linguagens
Tags: , exemplo, internacionalização, java, jstl, tutorial
by Luiz Paulo
| setembro 16, 2008
| 3 Comments »
JSTL é uma biblioteca utilizada para substituir código JAVA nos JSPs. Todo o código JAVA é substituido por TAGs específicas equivalentes a cada funcionalidade.
Uma poderosa solução da JSTL são as TagLibs onde podemos criar nossas próprias tags com funcionalidades personalizadas.
Veja um exemplo de página JSTL:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<jsp:useBean id="agora" class="java.util.Date" />
<html>
<body bgcolor="#FFFFFF">
<p><strong>Versão Curta: </strong><fmt:formatDate value="${agora}" /></p>
<p><strong>Versão Longa: </strong><fmt:formatDate value="${agora}" dateStyle="full" /></p>
</body>
</html>
O resultado desse código seria:
Versão Curta: 15/09/2008
Versão Longa: Segunda-feira, 15 de Setembro de 2008
A propriedade prefix define o prefixo "ftm" que interpretará a biblioteca de formatação e interação do JSTL.
Bibliotecas padrão
O JSTL fornece algumas bibliotecas padrão com foco bem específico, veja as bibliotecas:
Download
Para utilizar o JSTL você precisa fazer o download dao biblioteca.
Clique aqui para baixar
Categorias: Desenvolvimento web, Java
Tags: , internacionalização, java, jstl, taglib, web
by Luiz Paulo
| setembro 14, 2008
| 4 Comments »
Desde que resolvi me dedicar à programação sempre me identifiquei com desenvolvimento web. Web sempre foi o meu principal foco!
Passei por várias fases no desenvolvimento web. Já desenvolvi projetos em HTML puro, utilizei muito gif animado, frame, tabela. Trabalhei com dreamweaver, fireworks até no FrontPage (argh!).
Na época minha vida mudou completamente quando comecei a utilizar PHP / MySql, era tudo lindo e maravilhoso as coisas se tornaram mais simples com reaproveitamento e criação de componentes dinâmicos. Mesmo satisfeito com os resultados percebia que faltava alguma coisa, o PHP (até então PHP4) apesar de simples e fácil era muito feio. Mesmo com todo cuidado na escrita dos códigos, sempre ficava alguma gambiarra.
Até que pintou uma oportunidade de conhecer outro mundo... Desenvolvimento web com JAVA. O JAVA é bem mais complexo mais burocrático e os projetos ficam consideravelmente maiores. Todos conhecem a fama do JAVA e muitos pontos negativos, mas tem muitos pontos positivos também. Um projeto bem feito em JAVA é lindo! Adicionar recursos ou fazer manutenção no código se torna bem mais simples.
O mais interessante do JAVA não é a linguagem em si, mas o conceito envolvido. A modularização de componentes, utilização de partners (mvc, command, dao, factory, etc), a documentação. Enfim, cada vez mais cuidado para fazer códigos limpos.
Para desenvolver em JAVA é essencial a utilização de uma IDE (atualmente utilizo o Eclipse), sem ela posso dizer que seria quase impossível. Além de tudo ser interligado no projeto, o JAVA é bem grandinho, seria complicado escrever um projeto ou dar manutenção em códigos em um editor de textos padrão.
Estou nessa vida há um tempo e não me arrependo.
Como dizia um amigo “JAVA é o que há!” rsrsrs
Categorias: Desenvolvimento web, Java, Linguagens
Tags: , desenvolvimento, java, web