Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Calcular días hábiles en PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Calcular días hábiles en PHP

Este escript en php que sirve para calcular los días habiles. En mi caso se ocupa en una oficina, y lo nesecitan del año 2003 al 2008 pero se pueden mover los valores del ‘for' en el script, lo mismo que los valores del array de inhabiles, donde se pueden agregar días que no quieren ser contados.

El ejemplo funciona con un fichero index.php :

  1. <html>
  2. <head>
  3. <title>DEMO</title>
  4. <script src="js/mootools.js" type=text/javascript></script>
  5. <script>
  6. function ajax(){
  7. new Ajax('script.php', {
  8. update: $('resultado'),
  9. postBody: $('form').toQueryString()
  10. }).request();
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. <form id="form" onSubmit="javascript: ajax(); return false;">
  16. <label>Día:</label>
  17. <input type="text" size="2" name="day" value="<?php echo date("j"); ?>" />
  18. <label>Mes:</label>
  19. <input type="text" size="2" name="month" value="<?php echo date("n"); ?>" />
  20. <label>Año:</label>
  21. <input type="text" size="4" name="year" value="<?php echo date("Y"); ?>" />
  22. <label>Días a Calcular:</label>
  23. <input type="text" size="2" name="daysto" />
  24. <input type="submit" id="btn" value="Calcular"/>
  25. </form>
  26. <br />
  27. <div id="resultado" style="text-align:center;"></div>
  28. </body>
  29. </html>

con includes a la librería mootools y un fichero script.php que se encarga de realizar el cálculo:

  1. <?php
  2. // Todo exepto la función get_days_for_month, sacada de esta web
  3. // http://codedump.jonasjohn.de/snippets/get_days_for_month.htm
  4. // modificada para que funcione con años bisiestos es de mi autoria
  5. // imzyos@gmail.com
  6. function get_days_for_month($m,$y){
  7. if($m == 02){
  8. if(($y % 4 == 0) && (($y % 100 != 0) || ($y % 400 == 0))){
  9. return 29;
  10. }else{
  11. return 28;
  12. }
  13. }
  14.     if ($m == 4 || $m == 6 || $m == 9 || $m == 11){
  15.         return 30;
  16. }else{
  17.     return 31;
  18. }
  19. }
  20. extract($_POST);
  21. if(!isset($day) or !isset($month) or !isset($year) or !isset($daysto)){ exit; }
  22. $inhabiles = array('5/2/2007');
  23. $habiles = array();
  24. for($y=2003; $y<=2008; $y++){
  25. for($m=1; $m<=12; $m++){
  26. for($d=1; $d<=get_days_for_month($m,$y); $d++){
  27. $date = date('D', mktime(0,0,0,$m,$d,$y));
  28. if($date == 'Sat' or $date == 'Sun'){
  29. $inhabiles[] = date("j/n/Y", mktime(0,0,0,$m,$d,$y));
  30. }else{
  31. if(!in_array(date("j/n/Y", mktime(0,0,0,$m,$d,$y)),$inhabiles)){
  32. $habiles[] = date("j/n/Y", mktime(0,0,0,$m,$d,$y));
  33. }
  34. }
  35. }
  36. }
  37. }
  38. $date = $day.'/'.$month.'/'.$year;
  39. $contador = array_search($date,$habiles);;
  40. echo '<b>'.$habiles[$daysto+$contador].'</b>';
  41. ?>



Autor: Zyos
http://www.webintenta.com/script-para-el-calculo-de-dias-habiles.html

Usuarios que han visto este tema también han visto...

- Cacheando scripts para máxima optimización
- Calcular dias entre dos fechas con PHP
- Visitantes activos con PHP y MySQL
- Descarga de archivos en PHP
- CSS Color Generator en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 25-05-2012 a las 23:54:25