Rafaelflm Postado Novembro 25, 2010 Denunciar Share Postado Novembro 25, 2010 boa tarde a todos, sou novo aqui assim como no php, eu estou fazendo um calendario, e surgiu a duvida, como faço pra o calendario imprimir o dia 1 relacionado ao seu dia da semana ex::D S T Q Q S S 1 2 3 4 5 6ta vendo o dia primeiro começa na terça, então o for de dias começa e imprimir na segunda, não consigo fazer isso, segue meu codigo abaixo.grato<?$dia = array ("D","S","T","Q", "Q", "S", "S");$numero_mes = 01;$numero_ano = 2010;$num_dias_do_mes = cal_days_in_month(CAL_GREGORIAN,$numero_mes , $numero_ano);$diasemana = date("w", mktime(0,0,0,$numero_mes, 1 ,$numero_ano) );?><html><body><table border="1"><?$cols = 6;$linhas = 6;for ($i=0; $i <= $cols; $i++) { if ( $i >= 0 || $i <= 6 ) { print("<td bgcolorp;".$bgcolor."><b>".$dia[$i]."</b></td> "); } }print("<tr>"); for ($dias = 1; $dias <= $num_dias_do_mes; $dias++) { if ($dias % 7 == 1 ) { print("<tr>"); } if ( $j >= 0 || $j <= 35 ) { print("<td> ".$dias."</td>"); } }?></table></body></html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Novembro 26, 2010 Denunciar Share Postado Novembro 26, 2010 Bom dia, Rafaelflm!Acho que você está cometendo um pequeno erro, está faltando um argumento:$diasem = date('w', mktime(0, 0, 0, $mes, $dia, $ano));Como é para calendário, deixe o valor dia sempre com 1;Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafaelflm Postado Novembro 26, 2010 Autor Denunciar Share Postado Novembro 26, 2010 Bom dia, Rafaelflm!Acho que você está cometendo um pequeno erro, está faltando um argumento:$diasem = date('w', mktime(0, 0, 0, $mes, $dia, $ano));Como é para calendário, deixe o valor dia sempre com 1;Abraços.Bom dia, obrigado pela dica, isso já está arrumado, agora ficou só o problema de imprimir o dia primeiro em baixo do dia da semana correto, que ainda não consegui Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Novembro 26, 2010 Denunciar Share Postado Novembro 26, 2010 Olá!Acho que você já criou uma Tabela com os sete dias da semana.Caso isso já foi feito, use um laço, que pode ser o while, de forma que só precisa achar o primeiro dia,o restante é só continuar e parar sempre no w=6, para continuar em outra linha.Mas aqui no site tem vários modelos de calendários.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafaelflm Postado Novembro 30, 2010 Autor Denunciar Share Postado Novembro 30, 2010 Bom dia, Rafaelflm!Acho que você está cometendo um pequeno erro, está faltando um argumento:$diasem = date('w', mktime(0, 0, 0, $mes, $dia, $ano));Como é para calendário, deixe o valor dia sempre com 1;Abraços.Bom dia, obrigado pela dica, isso já está arrumado, agora ficou só o problema de imprimir o dia primeiro em baixo do dia da semana correto, que ainda não conseguiesse é o problema, não estou sabendo fazer por exemplo: dia 1 de novembro de 2010 começa na segunda feira, e não to conseguindo que o 1 fique em baixo do S de segunda feira. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Novembro 30, 2010 Denunciar Share Postado Novembro 30, 2010 Boa Tarde, Rafael.Veja se código que fiz te ajuda a ter uma idéia de como fazer.É claro que você vai precisar melhorar com javascript e css e o que você achar melhor.Mas acho que como ponto de partida está muito bom.Abraços.<HTML><HEAD> <TITLE>::.Calendário.::</TITLE><STYLE>table{font-family:Verdana;font-size:11pt;text-align:center;</STYLE></HEAD><BODY> <BR> <BR> <BR> <BR><?php//Caso queira importar as variáveis abaixo de outra página, retire o comentário abaixo://import_request_variables("gP");$mes=11; //Aqui você pode substituir pela váriavel do Mês;$dia=1; //Aqui recomendo não mexer, pois o calendário não é algo que ele mude;$ano=2010; //Aqui você pode substituir pela váriavel do Ano;$passa =0; /*Essa variável ela tem a finalidade de controlar os dias da semana, Apenas para quebra de linha;*/$final = 6; //Apenas para achar um parâmetro de raciocínio, verifique que a cada seis quebra a linha;$diames = date('t', mktime(0, 0, 0, $mes, $dia, $ano));$nomemes=array("ini","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");PRINT"<table border='1' width='500pt' align='center'><tr> <td colspan=7>$nomemes[$mes] - $ano</td></tr><tr> <td>D<BR>o<BR>m</td> <td>S<BR>e<BR>g</td> <td>T<BR>e<BR>r</td> <td>Q<BR>u<BR>a</td> <td>Q<BR>u<BR>i</td> <td>S<BR>e<BR>x</td> <td>S<BR>a<BR>b</td></tr><tr>";WHILE ($passa <= $final){$dia1 = date('w', mktime(0, 0, 0, $mes, $dia, $ano)); IF($dia1==$passa) { IF (($passa==6) AND ($dia==$diames)) {PRINT"<td>$dia</td></tr>"; } ELSEIF(($passa==6) AND ($dia < $diames)) {$passa =0; IF($dia < $diames){PRINT"<td>$dia</td></tr><tr>";$dia++; } } ELSE {$passa++; IF($dia < $diames){ PRINT"<td>$dia</td>";$dia++;}} } ELSE{PRINT"<td> </td>"; $passa++;}}IF (($passa!=6) AND ($dia!=$diames)){PRINT"</tr>";}PRINT"</table>";?></BODY></HTML> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafaelflm Postado Dezembro 1, 2010 Autor Denunciar Share Postado Dezembro 1, 2010 Boa Tarde, Rafael.Veja se código que fiz te ajuda a ter uma idéia de como fazer.É claro que você vai precisar melhorar com javascript e css e o que você achar melhor.Mas acho que como ponto de partida está muito bom.Abraços.<HTML><HEAD> <TITLE>::.Calendário.::</TITLE><STYLE>table{font-family:Verdana;font-size:11pt;text-align:center;</STYLE></HEAD><BODY> <BR> <BR> <BR> <BR><?php//Caso queira importar as variáveis abaixo de outra página, retire o comentário abaixo://import_request_variables("gP");$mes=11; //Aqui você pode substituir pela váriavel do Mês;$dia=1; //Aqui recomendo não mexer, pois o calendário não é algo que ele mude;$ano=2010; //Aqui você pode substituir pela váriavel do Ano;$passa =0; /*Essa variável ela tem a finalidade de controlar os dias da semana, Apenas para quebra de linha;*/$final = 6; //Apenas para achar um parâmetro de raciocínio, verifique que a cada seis quebra a linha;$diames = date('t', mktime(0, 0, 0, $mes, $dia, $ano));$nomemes=array("ini","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");PRINT"<table border='1' width='500pt' align='center'><tr> <td colspan=7>$nomemes[$mes] - $ano</td></tr><tr> <td>D<BR>o<BR>m</td> <td>S<BR>e<BR>g</td> <td>T<BR>e<BR>r</td> <td>Q<BR>u<BR>a</td> <td>Q<BR>u<BR>i</td> <td>S<BR>e<BR>x</td> <td>S<BR>a<BR>b</td></tr><tr>";WHILE ($passa <= $final){$dia1 = date('w', mktime(0, 0, 0, $mes, $dia, $ano)); IF($dia1==$passa) { IF (($passa==6) AND ($dia==$diames)) {PRINT"<td>$dia</td></tr>"; } ELSEIF(($passa==6) AND ($dia < $diames)) {$passa =0; IF($dia < $diames){PRINT"<td>$dia</td></tr><tr>";$dia++; } } ELSE {$passa++; IF($dia < $diames){ PRINT"<td>$dia</td>";$dia++;}} } ELSE{PRINT"<td> </td>"; $passa++;}}IF (($passa!=6) AND ($dia!=$diames)){PRINT"</tr>";}PRINT"</table>";?></BODY></HTML>Bom dia endor, muito obrigado, agora ficou bem claro, obrigado mesmo; =D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rafaelflm
boa tarde a todos, sou novo aqui assim como no php,
eu estou fazendo um calendario, e surgiu a duvida, como faço pra o calendario imprimir o dia 1 relacionado ao seu dia da semana ex::
D S T Q Q S S
1 2 3 4 5 6
ta vendo o dia primeiro começa na terça, então o for de dias começa e imprimir na segunda, não consigo fazer isso, segue meu codigo abaixo.
grato
<?
$dia = array ("D","S","T","Q", "Q", "S", "S");
$numero_mes = 01;
$numero_ano = 2010;
$num_dias_do_mes = cal_days_in_month(CAL_GREGORIAN,$numero_mes , $numero_ano);
$diasemana = date("w", mktime(0,0,0,$numero_mes, 1 ,$numero_ano) );
?>
<html>
<body>
<table border="1">
<?
$cols = 6;
$linhas = 6;
for ($i=0; $i <= $cols; $i++) {
if ( $i >= 0 || $i <= 6 ) {
print("<td bgcolorp;".$bgcolor."><b>".$dia[$i]."</b></td> ");
}
}
print("<tr>");
for ($dias = 1; $dias <= $num_dias_do_mes; $dias++) {
if ($dias % 7 == 1 ) {
print("<tr>");
}
if ( $j >= 0 || $j <= 35 ) {
print("<td> ".$dias."</td>");
}
}
?>
</table>
</body>
</html>
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.