Último dia do mês em várias linguagens

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: , , , , , , , , , , ,


 

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