Entradas

Mostrando entradas de noviembre, 2017

Dias domingos y feriados entre dos fechas MYSQL

Imagen
Calculo de los días domingos y festivos en Mysql. Suponiendo que DIASFESTIVOS es una tabla como la siguiente +-------------+----------------+------------------+ | Id_diafestivo | Dia_festivo | Fecha | +-------------+----------------+------------------+ | 1 | un dia festivo | 2017 - 12 - 21 | | 2 | navidad | 2017 - 12 - 25 | | 3 | muertos | 2017 - 10 - 02 | +-------------+----------------+------------------+ SET @Inicio := '2017-12-01'; SET @Fin := '2017-12-26'; SELECT @Inicio, @Fin, DATEDIFF(@Fin, @Inicio) AS Dias ,IFNULL(ROUND(((UNIX_TIMESTAMP(@Fin) - UNIX_TIMESTAMP(@Inicio)) / (24 * 60 * 60) - 7 + WEEKDAY(@Inicio) - WEEKDAY(@Fin)) / 7) + IF(WEEKDAY(@Inicio) <= 6, 1, 0) + IF(WEEKDAY(@Fin) >= 6, 1, 0), '0') AS Domingos ,(SELECT COUNT(Fecha) FROM DIASFESTIVOS WHERE

Simple explicación sobre get_instance() CODEIGNITER

En algunos casos queremos escribir nuestras propias clases separadas de nuestros controladores pero cuando esto pasa perdemos algunos recursos que Codeigniter nos ofrece por medio de la variable $this, sin embargo no está todo perdido ya que es posible gracias a la función auxiliar get_instance() la cual retorna el SuperObjeto Codeigniter. Ejemplo práctico de la situación que comento Normalmente desde mi controlador puedo llamar a cualquier metodo disponible de la siguiente forma $this -> load -> helper ( 'url' ); $this -> load -> library ( 'session' ); $this -> config -> item ( 'base_url' ); Pero, ¿qué pasa cuando creo un helper o una clase que igual necesita acceder a estos metodos? simplemente la variable $this no puede hacer referencia a ningun constructor porque no existe. Solución sencilla, la función get_instance() nos ayuda con esto pues sirve para acceder a una instancia del superobjeto CodeIgniter, con la que podremos re

Problemas de audifonos en Ubuntu 17.04

El problema es que no se escuchan los audifonos en ubuntu, la solución es la siguiente. En terminal editamos el siguiente archivo sudo nano /etc/modprobe.d/alsa-base.conf Añadimos la siguiente línea de acuerdo al hardware de nuestra computadora, en mi caso una Acer TravelMate options snd-hda-intel model= asus-mode5 El valor de la línea de acuerdo a lo siguiente: mario (para el audio ALC892 de las portátiles Google Chromebook),  asus-mode1 , asus-mode2 , asus-mode3 , (para equipos con sólo 3 salidas de audio, hasta un máximo de surround 5.1) asus-mode4 , asus-mode5 , (para salidas de hasta 4.0) asus-mode6 , asus-mode7 , asus-mode8 , (para salidas de audio hasta 7.1 digital y 5.1 analógicas) inv-dmic y dell-headset-multi (para portátiles que empleen micrófonos internos incorporados y entrada de micrófonos externos independizadas). Happy coding!   

Días hábiles entre dos fechas MYSQL

Qué tal, aquí dejo un pedazo de código sql para calcular los días domingos entre dos fechas. Si quieres solo obtener los días laborales, simplemente realiza una resta de un DATEDIFF entre las fechas y a ese resultado se le resta los domingos, cosa de lógica. Puede ser una función o un simple select, en mi opinión una función sería más conveniente. Ahí va: Set @fechaTermino = '2017-03-21'; Set @fechaInicio = '2017-03-11'; SELECT ROUND(((unix_timestamp(@fechaTermino) - unix_timestamp(@fechaInicio) ) /(24*60*60)-7+WEEKDAY(@fechaInicio)-WEEKDAY(@fechaTermino))/7)  + if(WEEKDAY(@fechaInicio) <= 6, 1, 0)  + if(WEEKDAY(@fechaTermino) >= 6, 1, 0) as diasDomingos Resultado +-----------------+ | diasDomingos | +-----------------+ |  2                    | +-----------------+ Happy Coding!