Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrícia Nogueira

Cálculo do dia e do mês a partir do dia do ano total

Recommended Posts

boa pergunta. :)

 

Acho que não há nada nativo para isso. Dei uma olhada no Manual, mas não achei nada.

 

Brincando um pouco aqui, cheguei a isto:

 

$dia = 363;

for ( $i = 1; $i <= 12; $i++ )
{
		// número de dias do mês corrente no loop
	$dias_mes = date("t", mktime( 0, 0, 0, $i, 1, date('Y') ));
	
	if ( $dia < $dias_mes )
	{
		break;
	}
	$dia -= $dias_mes;
}

echo $dia . '/' . $i . '/' . date( 'Y' );

Pelo que testei aqui, deu certo. Talvez haja uma maneira melhor de fazer isso, mas só essa me veio à mente no momento. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem reviver este tópico, mas queria dar uma alerta sobre o post do beraldo e postar uma solução minha.

 

Na solução do Beraldo, eu defini a variavel $dia para o valor 90 e o retorno foi 0/4/2010. Existe outros valores que isso ocorre, como 120 e etc.

 

Por isso parei aqui e fiz outra solução para deixar pra quem precisa.

 

<?php
function get_day_month( $day, $year = false ) {
return getdate( mktime( 0, 0, 0, 1, $day, $year === false ? date( 'Y' ) : $year ) );
}
?>

 

Ela tem 2 parâmetros. O dia do ano e o ano. Se ano não for especificado, será levado em conta o ano corrente. O seu retorno é um array associativo (ver getdate() no manual do php).

Veja:

 

<?php
print_r( get_day_month( 177 ) ); #Dia 177 do ano corrente.
print_r( get_day_month( 177, 2005 ) ); #Dia 177 do ano de 2005.
?>

 

Outro exemplo:

 

<?php
$day_info = get_day_month( 177 );

echo 'O dia ' . ( $day_info['yday'] + 1 ) . ' do ano de ' . $day_info['year'];
echo ' cai em ' . $day_info['mday'] . '/' . $day_info['mon'] . ' (';
echo $day_info['wday'] . 'º dia da semana (' . $day_info['weekday'] . ')).';
?>

 

A saída disso será:

 

O dia 177 do ano de 2010 cai em 26/6 (6º dia da semana (Saturday)).

Obs.: O +1 alí nos echo's é o seguinte. Para a função getdate, o primeiro dia do ano (1º de janeiro) é o dia 0 zero do ano. Por isso o +1 alí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.