<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Manuel &#124; empty</title>
	<atom:link href="http://manuel.radiohead.cl/feed/" rel="self" type="application/rss+xml" />
	<link>http://manuel.radiohead.cl</link>
	<description>Comenzando a escribir...</description>
	<lastBuildDate>Wed, 14 Apr 2010 14:05:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Hot Potatoes: Crea recursos educativos en HTML</title>
		<link>http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/</link>
		<comments>http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 14:05:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Educación]]></category>
		<category><![CDATA[alternativa jclick]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=90</guid>
		<description><![CDATA[Muchos ya conocen jClick, el cual nos permite crear recursos educativos que van desde términos pareados, hasta respuestas de alternativas...]]></description>
			<content:encoded><![CDATA[<p><a href="http://manuel.radiohead.cl/wp-content/uploads/2010/04/Imagen-4.png"><img class="alignleft size-full wp-image-93" style="margin-right: 1em; border: 1px solid black;" title="Imagen 4" src="http://manuel.radiohead.cl/wp-content/uploads/2010/04/Imagen-4.png" alt="" width="114" height="109" /></a>Muchos ya conocen jClick, el cual nos permite crear recursos educativos que van desde términos pareados, hasta respuestas de alternativas entre otros. El caso es que jClick está hecho en Java(de ahí la letra&#8221;j&#8221; antes del &#8220;click), y si bien permite publicar nuestro trabajo en un applet(aplicación java para ejecutar en navegador web) nos hace igualmente dificultoso el trabajo, ya que dependemos de browser, y siempre nos tenemos que adecuar a un alto y ancho del recurso(dado por jclick).</p>
<p>En su momento(hace ya prácticamente 2 años atrás), busqué alternativas gratuitas a jClick sin resultados. Hoy, casi por casualidad vi a un profesor(extranjero) de inglés que usó una herramienta muy llamativa para crear test, el software se llamaba Hot Potatoes.</p>
<p>Hot Potatoes es un software hecho en Java lo que permite que sea multiplataforma, pero lo mas interesante y llamativo es que los recursos los genera en HTML puro + Javascript. Además la actual versión del programa se liberó como gratuita, lo cual nos permite publicar nuestros trabajos sin dificultades de licencia y obteniendo un resultado casi profesional.</p>
<p>Les recomiendo revisar el software a todos aquellos profesores que deseen usar la informática para el desarrollo de activiades.</p>
<div class='stb-download_box' ><a href="http://hotpot.uvic.ca/" target="_blank">http://hotpot.uvic.ca/</a></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/&amp;title=Hot+Potatoes%3A+Crea+recursos+educativos+en+HTML" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/&amp;t=Hot+Potatoes%3A+Crea+recursos+educativos+en+HTML" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Hot+Potatoes%3A+Crea+recursos+educativos+en+HTML&amp;body=Link: http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Muchos%20ya%20conocen%20jClick%2C%20el%20cual%20nos%20permite%20crear%20recursos%20educativos%20que%20van%20desde%20t%C3%A9rminos%20pareados%2C%20hasta%20respuestas%20de%20alternativas%20entre%20otros.%20El%20caso%20es%20que%20jClick%20est%C3%A1%20hecho%20en%20Java%28de%20ah%C3%AD%20la%20letra%22j%22%20antes%20del%20%22click%29%2C%20y%20si%20bien%20permite%20publicar%20nuestro%20trabajo%20en%20un%20applet%28aplicaci%C3%B3n" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/&amp;title=Hot+Potatoes%3A+Crea+recursos+educativos+en+HTML" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Hot+Potatoes%3A+Crea+recursos+educativos+en+HTML+-+http://b2l.me/pf4da&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2010/hot-potatoes-crea-recursos-educativos-en-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Icinga: Cuando los forks prometen</title>
		<link>http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/</link>
		<comments>http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:36:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[NIX]]></category>
		<category><![CDATA[alternativa]]></category>
		<category><![CDATA[icinga]]></category>
		<category><![CDATA[nagios]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=87</guid>
		<description><![CDATA[Hace ya bastante tiempo que decidí usar un fork de CodeIgniter llamado KohanaPHP y no pudo ser mejor opción. Fue...]]></description>
			<content:encoded><![CDATA[<p>Hace ya bastante tiempo que decidí usar un fork de CodeIgniter llamado KohanaPHP y no pudo ser mejor opción. Fue así que hice la idea que los fork muchas veces pueden ser mas potentes que en software original principalmente por el estusiasmo de la comunidad que los lleva.</p>
<p>Al grano, Nagios es mi sistema de monitoreo WEB preferido pero tiene puntos que siempre quise cambiar, por ejemplo la UI. Leyendo información me topé con ICINGA el cual básicamente es un fork de Nagios pero con una UI muuuuuuuuuuucho mas atractiva y potente para nuestros tiempos. Faltan poco menos de 24 horas para que salga el release oficial y estoy espectante a instalarlo y empaquetar en .deb para mi coleccion de aplicaciones para squeeze.</p>
<p>Home: <a href="http://www.icinga.org/">http://www.icinga.org/</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/&amp;title=Icinga%3A+Cuando+los+forks+prometen" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/&amp;t=Icinga%3A+Cuando+los+forks+prometen" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Icinga%3A+Cuando+los+forks+prometen&amp;body=Link: http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Hace%20ya%20bastante%20tiempo%20que%20decid%C3%AD%20usar%20un%20fork%20de%20CodeIgniter%20llamado%20KohanaPHP%20y%20no%20pudo%20ser%20mejor%20opci%C3%B3n.%20Fue%20as%C3%AD%20que%20hice%20la%20idea%20que%20los%20fork%20muchas%20veces%20pueden%20ser%20mas%20potentes%20que%20en%20software%20original%20principalmente%20por%20el%20estusiasmo%20de%20la%20comunidad%20que%20los%20lleva.%0D%0A%0D%0AAl%20grano%2C%20Nagios%20es%20m" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/&amp;title=Icinga%3A+Cuando+los+forks+prometen" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Icinga%3A+Cuando+los+forks+prometen+-+http://b2l.me/bk5zf&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/icinga-cuando-los-forks-prometen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Problema al actualizar Imagemagick en Debian Testing</title>
		<link>http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/</link>
		<comments>http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 18:15:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[NIX]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[passengers]]></category>
		<category><![CDATA[rmagick]]></category>
		<category><![CDATA[squeeze]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=47</guid>
		<description><![CDATA[This installation of RMagick was configured with ImageMagick 6.5.5 but ImageMagick 6.5.7-8 is in use. Es el mensaje que les...]]></description>
			<content:encoded><![CDATA[<blockquote><p>This installation of RMagick was configured with ImageMagick 6.5.5 but ImageMagick 6.5.7-8 is in use.</p></blockquote>
<p>Es el mensaje que les saldrá si actualizaron ImageMagick en Debian Testing(Squeeze) y tienen corriendo Redmine o cualquier otra aplicación que use RMagick(ImageMagick en Ruby) bajo passengers.</p>
<p>La solución basicamente consiste en reinstalar rmagick bajo ruby gems:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sobek:~<span style="color: #666666; font-style: italic;"># gem install rmagick</span><br />
Building native extensions. &nbsp;This could take a while...<br />
Successfully installed rmagick-2.12.2<br />
<span style="color: #000000;">1</span> gem installed<br />
Installing ri documentation <span style="color: #000000; font-weight: bold;">for</span> rmagick-2.12.2...<br />
Updating ri class cache with <span style="color: #000000;">935</span> classes...<br />
Installing RDoc documentation <span style="color: #000000; font-weight: bold;">for</span> rmagick-2.12.2...<br />
sobek:~<span style="color: #666666; font-style: italic;">#</span></div></td></tr></tbody></table></div>
<p>Recargamos y todo vuelve a la normalidad.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/&amp;title=Problema+al+actualizar+Imagemagick+en+Debian+Testing" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/&amp;t=Problema+al+actualizar+Imagemagick+en+Debian+Testing" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Problema+al+actualizar+Imagemagick+en+Debian+Testing&amp;body=Link: http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A This%20installation%20of%20RMagick%20was%20configured%20with%20ImageMagick%206.5.5%20but%20ImageMagick%206.5.7-8%20is%20in%20use.%0D%0AEs%20el%20mensaje%20que%20les%20saldr%C3%A1%20si%20actualizaron%20ImageMagick%20en%20Debian%20Testing%28Squeeze%29%20y%20tienen%20corriendo%20Redmine%20o%20cualquier%20otra%20aplicaci%C3%B3n%20que%20use%20RMagick%28ImageMagick%20en%20Ruby%29%20bajo%20passengers.%0D%0A%0D" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/&amp;title=Problema+al+actualizar+Imagemagick+en+Debian+Testing" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Problema+al+actualizar+Imagemagick+en+Debian+Testing+-+http://b2l.me/a64rs&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/problema-al-actualizar-imagemagick-en-debian-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problema: Validar fechas Javascript/Cambio de hora</title>
		<link>http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/</link>
		<comments>http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 23:34:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programacion]]></category>
		<category><![CDATA[cambio de hora]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[validar fecha]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=35</guid>
		<description><![CDATA[Mas de alguno tiene una función que valida una fecha en javascript y lo principal que se quiere conseguir es...]]></description>
			<content:encoded><![CDATA[<p>Mas de alguno tiene una función que valida una fecha en javascript y lo principal que se quiere conseguir es que el usuario final no digite una fecha invalida(Ej: 31 de Febrero). Para esto se utiliza el objeto Date de javascript, en una forma similar a esta:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">/*<br />
* Date(AÑO, MES, DIA)<br />
* Notese que el mes esta escrito con -1,<br />
* esto es porque el objeto toma los meses del 0 al 11<br />
*/</span><br />
<span style="color: #003366; font-weight: bold;">var</span> miFecha <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2009</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">19</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Pues bueno, siguiendo con el tema, la mayoria de las funciones que encontré en internet funcionan de la siguiente manera:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">function</span> validafecha<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> re <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/^\d{1,2}\/\d{1,2}\/\d{4}$/</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Valida el formato</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> re.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> adata <span style="color: #339933;">=</span> value.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//Separa dia, mes y año</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> gg <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>adata<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//pasa el dia a una variable</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> mm <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>adata<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//el mes a una variable</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> aaaa <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>adata<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//el año a una variable</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> fdata <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>aaaa<span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span>mm<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>gg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//Genera la fecha con los datos ingresados</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Comienza la validacion:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Primero valida que el año del objeto sea igual al entero que se digitó<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Segundo valida que el numero del mes del objeto, sea igual al entero que se digitó - 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Tercero, valida que el día del objeto sea igual al entero que se digitó<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span> fdata.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> aaaa <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span> fdata.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900;">&#40;</span>mm<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>fdata.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> gg<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> check<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p><span id="more-35"></span></p>
<p>Esto funciona bien hasta que&#8230; se cambia el horario del verano y en especifico para el siguiente. Es decir, el momento en que se cambia un día sábado 10 al domingo 11. Por tanto, si digitamos la fecha 11/10/2009 y si, y solo si, <strong>nuestro computador tiene una correcta zona horaria con cambio automático de a horario de verano</strong>&#8230; la fecha será <strong>INVALIDA</strong>.</p>
<p>Para resolver lo anterior basta con realizar la misma validación pero con horas, ya que al crear el objeto Date de javascript, este se crea con hora 00:00:00 y como resultado el motor de JS va a tender a restar o sumar una hora, lo que se traduce en que la fecha que se creó en el objeto sea distinta a la que se escribió.</p>
<p>La función correcta sería:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">function</span> validafecha<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> re <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/^\d{1,2}\/\d{1,2}\/\d{4}$/</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Valida el formato</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> re.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> adata <span style="color: #339933;">=</span> value.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//Separa dia, mes y año</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> gg <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>adata<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//pasa el dia a una variable</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> mm <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>adata<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//el mes a una variable</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> aaaa <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>adata<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//el año a una variable</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> fdata <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span>aaaa<span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span>mm<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>gg<span style="color: #339933;">,</span><span style="color: #CC0000;">12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//Genera la fecha con los datos ingresados, o cualquier hora distinta a la hora 00</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Comienza la validacion:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Primero valida que el año del objeto sea igual al entero que se digitó<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Segundo valida que el numero del mes del objeto, sea igual al entero que se digitó - 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Tercero, valida que el día del objeto sea igual al entero que se digitó<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span> fdata.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> aaaa <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span> fdata.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900;">&#40;</span>mm<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>fdata.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> gg<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> check<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Testeen en el siguiente enlace escribiendo la fecha 11 de Octubre de 2009 en el formato solicitado:<br />
<a href="http://www.javascriptkit.com/script/script2/validatedate.shtml " target="_blank"> http://www.javascriptkit.com/script/script2/validatedate.shtml<br />
</a> Verán que apesar de que la fecha es valida, les dira lo contrario =).</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/&amp;title=Problema%3A+Validar+fechas+Javascript%2FCambio+de+hora" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/&amp;t=Problema%3A+Validar+fechas+Javascript%2FCambio+de+hora" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Problema%3A+Validar+fechas+Javascript%2FCambio+de+hora&amp;body=Link: http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Mas%20de%20alguno%20tiene%20una%20funci%C3%B3n%20que%20valida%20una%20fecha%20en%20javascript%20y%20lo%20principal%20que%20se%20quiere%20conseguir%20es%20que%20el%20usuario%20final%20no%20digite%20una%20fecha%20invalida%28Ej%3A%2031%20de%20Febrero%29.%20Para%20esto%20se%20utiliza%20el%20objeto%20Date%20de%20javascript%2C%20en%20una%20forma%20similar%20a%20esta%3A%0D%0A%0D%0A%0D%0A%2F%2A%0D%0A%2A%20Date%28A%C3%91O%2C%20MES%2C%20DIA%29%0D%0A%2A%20Notes" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/&amp;title=Problema%3A+Validar+fechas+Javascript%2FCambio+de+hora" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Problema%3A+Validar+fechas+Javascript%2FCambio+de+hora+-+http://b2l.me/r3ft&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/problema-validar-fechas-javascript-cambio-de-hora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Día hábil anterior/próximo en PostgreSQL</title>
		<link>http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/</link>
		<comments>http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 04:54:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[base de datos]]></category>
		<category><![CDATA[dias habiles]]></category>
		<category><![CDATA[funcion]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=30</guid>
		<description><![CDATA[Unos &#8220;conocidos&#8221; reclamaron que no solamente deseaban sacar el proximo día hábil, sino también deseaban saber cuales eran los N...]]></description>
			<content:encoded><![CDATA[<p>Unos &#8220;conocidos&#8221; reclamaron que no solamente deseaban sacar el proximo día hábil, sino también deseaban saber cuales eran los N anteriores días habiles. Ademas se reportaron fallos con fecha sabado y/o domingo.</p>
<p>Por lo anterior y otras razones más, publico la v2 que ahora se llama dia_habil y se utiliza de la siguiente forma:</p>
<ul>
<li>Para el/los próximo(s) día(s):</li>
</ul>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> utilidades<span style="color: #66cc66;">.</span>dia_habil<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">,</span> current_date<span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<ul>
<li>Para el/los anterior(es) día(s):</li>
</ul>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> utilidades<span style="color: #66cc66;">.</span>dia_habil<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">,</span> current_date<span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p><span id="more-30"></span></p>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">--DROP FUNCTION utilidades.dia_habil (IN in_dias int4, IN in_desde date) CASCADE;</span><br />
<span style="color: #808080; font-style: italic;">/**<br />
* Funcion que calcula el ANTERIOR o PROXIMO dia habil<br />
*<br />
* @date 2009-10-07<br />
* @author MANUEL DIEGO PAILLAFIL GAMBOA<br />
* @email manuel@radiohead.cl<br />
* @url http://manuel.radiohead.cl/<br />
*<br />
* @param INT<br />
* @param DATE<br />
*/</span><br />
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">FUNCTION</span> utilidades<span style="color: #66cc66;">.</span>dia_habil<span style="color: #66cc66;">&#40;</span>in_dias integer<span style="color: #66cc66;">,</span> in_desde date<span style="color: #66cc66;">&#41;</span><br />
&nbsp; RETURNS date <span style="color: #993333; font-weight: bold;">AS</span><br />
$BODY$<br />
&nbsp; &nbsp; DECLARE<br />
&nbsp; &nbsp; fecha_actual date :<span style="color: #66cc66;">=</span> in_desde;<br />
&nbsp; &nbsp; fecha_limite date;<br />
&nbsp; &nbsp; retorno date;<br />
&nbsp; &nbsp; dias_extras int4 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;<br />
&nbsp; &nbsp; dias_extras_alt int4 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;<br />
&nbsp; &nbsp; dia int4;<br />
&nbsp; &nbsp; generate_digit1 int4;<br />
&nbsp; &nbsp; generate_digit2 int4;<br />
&nbsp; &nbsp; row_fechas record;<br />
&nbsp; &nbsp; row_fechas_alt record;<br />
&nbsp; &nbsp; BEGIN<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> in_dias;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> EXTRACT<span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> fecha_actual<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'1 days'</span>::interval;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ELSE <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'0 days'</span>::interval;<br />
&nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; fecha_limite :<span style="color: #66cc66;">=</span> fecha_actual;<br />
&nbsp; &nbsp; ELSE<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> in_dias;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> EXTRACT<span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> fecha_actual<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'2 day'</span>::interval;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ELSE <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fecha_actual :<span style="color: #66cc66;">=</span> fecha_actual <span style="color: #66cc66;">-</span> <span style="color: #ff0000;">'1 days'</span>::interval;<br />
&nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; fecha_limite :<span style="color: #66cc66;">=</span> fecha_actual;<br />
&nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">FOR</span> row_fechas <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SELECT</span> fecha_actual <span style="color: #66cc66;">+</span> s<span style="color: #66cc66;">.</span>a <span style="color: #993333; font-weight: bold;">AS</span> fecha <span style="color: #993333; font-weight: bold;">FROM</span> generate_series<span style="color: #66cc66;">&#40;</span>generate_digit1<span style="color: #66cc66;">,</span>generate_digit2<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> s<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> LOOP<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> EXTRACT<span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> row_fechas<span style="color: #66cc66;">.</span>fecha<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span> <span style="color: #993333; font-weight: bold;">AND</span> in_dias <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras :<span style="color: #66cc66;">=</span> dias_extras <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #993333; font-weight: bold;">AND</span> in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras :<span style="color: #66cc66;">=</span> dias_extras <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; END LOOP;<br />
<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> in_dias <span style="color: #66cc66;">+</span> dias_extras;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; ELSE<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit1 :<span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; generate_digit2 :<span style="color: #66cc66;">=</span> in_dias <span style="color: #66cc66;">+</span> dias_extras;<br />
&nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">FOR</span> row_fechas_alt <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SELECT</span> fecha_actual <span style="color: #66cc66;">+</span> s<span style="color: #66cc66;">.</span>a <span style="color: #993333; font-weight: bold;">AS</span> fecha <span style="color: #993333; font-weight: bold;">FROM</span> generate_series<span style="color: #66cc66;">&#40;</span>generate_digit1<span style="color: #66cc66;">,</span>generate_digit2<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> s<span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> LOOP<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">SELECT</span> EXTRACT<span style="color: #66cc66;">&#40;</span>DOW <span style="color: #993333; font-weight: bold;">FROM</span> row_fechas_alt<span style="color: #66cc66;">.</span>fecha<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> dia;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>dia <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">IF</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>THEN<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras_alt :<span style="color: #66cc66;">=</span> dias_extras_alt <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dias_extras_alt :<span style="color: #66cc66;">=</span> dias_extras_alt <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Las siguientes 7 lineas se descomentan si se desea utilizar una tabla que mantenga los feriados<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* con fecha absoluta(25 de Diciembre es 25/12/2009(Formato SQL, EURUPEO))<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--ELSE IF(row_fechas_alt.fecha IN (SELECT fecha FROM utilidades.feriados WHERE fecha = row_fechas_alt.fecha AND EXTRACT(dow FROM fecha) NOT IN (0,6)))THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; IF(in_dias &lt; 0)THEN</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; &nbsp; &nbsp; dias_extras_alt := dias_extras_alt - 1;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; ELSE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; &nbsp; &nbsp; dias_extras_alt := dias_extras_alt + 1;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--&nbsp; END IF;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">--END IF;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; END <span style="color: #993333; font-weight: bold;">IF</span>;<br />
&nbsp; &nbsp; END LOOP;<br />
<br />
&nbsp; &nbsp; retorno :<span style="color: #66cc66;">=</span> fecha_limite <span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>in_dias <span style="color: #66cc66;">+</span> dias_extras_alt<span style="color: #66cc66;">&#41;</span>::varchar <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' days'</span><span style="color: #66cc66;">&#41;</span>::interval;<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">RETURN</span> retorno;<br />
&nbsp; &nbsp; END;<br />
$BODY$<br />
&nbsp; <span style="color: #993333; font-weight: bold;">LANGUAGE</span> <span style="color: #ff0000;">'plpgsql'</span> VOLATILE;</div></td></tr></tbody></table></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;t=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL&amp;body=Link: http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Unos%20%22conocidos%22%20reclamaron%20que%20no%20solamente%20deseaban%20sacar%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%2C%20sino%20tambi%C3%A9n%20deseaban%20saber%20cuales%20eran%20los%20N%20anteriores%20d%C3%ADas%20habiles.%20Ademas%20se%20reportaron%20fallos%20con%20fecha%20sabado%20y%2Fo%20domingo.%0D%0A%0D%0APor%20lo%20anterior%20y%20otras%20razones%20m%C3%A1s%2C%20publico%20la%20v2%20que%20ahora%20se%20llama%20dia_habil%20y" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/&amp;title=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=D%C3%ADa+h%C3%A1bil+anterior%2Fpr%C3%B3ximo+en+PostgreSQL+-+http://b2l.me/gf6h&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Función para validar RUT en PHP5.3 o inferior</title>
		<link>http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/</link>
		<comments>http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 20:03:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[programacion]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 5.3]]></category>
		<category><![CDATA[validar rut]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=25</guid>
		<description><![CDATA[Muchas, por no decir todas, de las funciones que hay en internet para validar el RUT son compatibles con PHP...]]></description>
			<content:encoded><![CDATA[<p>Muchas, por no decir todas, de las funciones que hay en internet para validar  el RUT son compatibles con PHP 5.2.X o inferiores.</p>
<p>En PHP 5.3 se dieron de baja varias funciones con el fin de &#8220;preparar&#8221; el núcleo para PHP 6. Por este motivo me decidí a re-escribir el código de la función que utilizaba para validar el rut.</p>
<p><span id="more-25"></span></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* Funcion para validar RUT compatible con PHP5.3 o inferior<br />
&nbsp; &nbsp; &nbsp;* <br />
&nbsp; &nbsp; &nbsp;* <br />
&nbsp; &nbsp; &nbsp;* @license &nbsp; &nbsp; BSD<br />
&nbsp; &nbsp; &nbsp;* @author&nbsp; &nbsp; &nbsp; Manuel Diego Paillafil Gamboa<br />
&nbsp; &nbsp; &nbsp;* @link&nbsp; &nbsp; &nbsp; &nbsp; http://manuel.radiohead.cl/<br />
&nbsp; &nbsp; &nbsp;* @email &nbsp; &nbsp; &nbsp; manuel@radiohead.cl<br />
&nbsp; &nbsp; &nbsp;* <br />
&nbsp; &nbsp; &nbsp;* @version &nbsp; &nbsp; 1.0<br />
&nbsp; &nbsp; &nbsp;* @date&nbsp; &nbsp; &nbsp; &nbsp; 07/10/2009<br />
&nbsp; &nbsp; &nbsp;* <br />
&nbsp; &nbsp; &nbsp;* @param string<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* @return bool<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> rut<span style="color: #009900;">&#40;</span><span style="color: #000088;">$rut</span><span style="color: #009900;">&#41;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rut</span>&nbsp; &nbsp; <span style="color: #339933;">=</span> &nbsp; <a href="http://www.php.net/strtoupper"><span style="color: #990000;">strtoupper</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'{\.|,|-}'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$rut</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$sub_rut</span><span style="color: #339933;">=</span> &nbsp; <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rut</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rut</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$sub_dv</span> <span style="color: #339933;">=</span> &nbsp; <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rut</span><span style="color: #339933;">,-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$x</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$s</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sub_rut</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&gt;=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$x</span>&nbsp; <span style="color: #339933;">=</span> &nbsp; <span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span> ? <span style="color: #cc66cc;">2</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$x</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$s</span>&nbsp; <span style="color: #339933;">+=</span>&nbsp; <span style="color: #000088;">$sub_rut</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #000088;">$x</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$x</span><span style="color: #339933;">++;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$dv</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">11</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$s</span><span style="color: #339933;">%</span><span style="color:#800080;">11</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$dv</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dv</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">'K'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dv</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span> ? <span style="color: #0000ff;">'0'</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$dv</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dv</span><span style="color: #339933;">==</span><span style="color: #000088;">$sub_dv</span><span style="color: #009900;">&#41;</span> ? <span style="color: #009900; font-weight: bold;">TRUE</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/&amp;title=Funci%C3%B3n+para+validar+RUT+en+PHP5.3+o+inferior" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/&amp;t=Funci%C3%B3n+para+validar+RUT+en+PHP5.3+o+inferior" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Funci%C3%B3n+para+validar+RUT+en+PHP5.3+o+inferior&amp;body=Link: http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Muchas%2C%20por%20no%20decir%20todas%2C%20de%20las%20funciones%20que%20hay%20en%20internet%20para%20validar%20%20el%20RUT%20son%20compatibles%20con%20PHP%205.2.X%20o%20inferiores.%0D%0A%0D%0AEn%20PHP%205.3%20se%20dieron%20de%20baja%20varias%20funciones%20con%20el%20fin%20de%20%22preparar%22%20el%20n%C3%BAcleo%20para%20PHP%206.%20Por%20este%20motivo%20me%20decid%C3%AD%20a%20re-escribir%20el%20c%C3%B3digo%20de%20la%20funci%C3%B3n%20que%20ut" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/&amp;title=Funci%C3%B3n+para+validar+RUT+en+PHP5.3+o+inferior" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Funci%C3%B3n+para+validar+RUT+en+PHP5.3+o+inferior+-+http://b2l.me/f6dt&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/funcion-para-validar-rut-en-php5-3-o-inferior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Próximo día hábil en PostgreSQL</title>
		<link>http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/</link>
		<comments>http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 14:10:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[base de datos]]></category>
		<category><![CDATA[dias habiles]]></category>
		<category><![CDATA[funcion]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=10</guid>
		<description><![CDATA[Una función en PL/pgSQL, que permite saber el proximo día hábil dependiendo de dos valores: Cuantos días Fecha de Inicio...]]></description>
			<content:encoded><![CDATA[<div class='stb-warning_box' >
<p><strong>Funcion obsoleta y con errores.</strong></p>
<p>Versión 2 en:</p>
<p><a href="http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/">http://manuel.radiohead.cl/2009/dia-habil-anterior-proximo-en-postgresql/</a></p>
<p></div>Una función en PL/pgSQL, que permite saber el proximo día hábil dependiendo de dos valores:</p>
<ol>
<li>Cuantos días</li>
<li>Fecha de Inicio</li>
</ol>
<p>El uso es de la siguiente forma para los próximos 15 días hábiles a contar de hoy:</p>
<div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> utilidades<span style="color: #66cc66;">.</span>proximo_dia_habil<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #66cc66;">,</span> current_date<span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p><span id="more-10"></span><br />
Aquí la función:</p>
<div class="codecolorer-container plsql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #080; font-style: italic;">--DROP FUNCTION &quot;utilidades&quot;.&quot;proximo_dia_habil&quot; (IN in_dias int4, IN in_desde date) CASCADE;</span><br />
<span style="color: #080; font-style: italic;">/**<br />
* Funcion que calcula el proximo dia habil<br />
*<br />
* @param INT<br />
* @param DATE<br />
*/</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=CREATE"><span style="color: #00F;">CREATE</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=OR"><span style="color: #00F;">OR</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=REPLACE"><span style="color: #000;">REPLACE</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FUNCTION"><span style="color: #00F;">FUNCTION</span></a> <span style="color: #F00;">&quot;utilidades&quot;</span><span style="color: #00F;">.</span><span style="color: #F00;">&quot;proximo_dia_habil&quot;</span> <span style="color: #00F;">&#40;</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> in_dias int4<span style="color: #00F;">,</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> in_desde <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a><span style="color: #00F;">&#41;</span><br />
RETURNS <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a><br />
$BODY$<br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DECLARE"><span style="color: #00F;">DECLARE</span></a><br />
fecha_actual <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a> <span style="color: #00F;">:=</span> in_desde<span style="color: #00F;">;</span><br />
fecha_limite <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a><span style="color: #00F;">;</span><br />
retorno <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=DATE"><span style="color: #00F;">DATE</span></a><span style="color: #00F;">;</span><br />
dias_extras int4 <span style="color: #00F;">:=</span> <span style="color: #800;">0</span><span style="color: #00F;">;</span><br />
dias_extras_alt int4 <span style="color: #00F;">:=</span> <span style="color: #800;">0</span><span style="color: #00F;">;</span><br />
dia int4<span style="color: #00F;">;</span><br />
row_fechas <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=RECORD"><span style="color: #00F;">RECORD</span></a><span style="color: #00F;">;</span><br />
row_fechas_alt <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=RECORD"><span style="color: #00F;">RECORD</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=BEGIN"><span style="color: #00F;">BEGIN</span></a><br />
<span style="color: #080; font-style: italic;">/**<br />
* @date 2009-10-06<br />
* @author Manuel Paillafil Gamboa<br />
* @email manuel@radiohead.cl<br />
*/</span><br />
fecha_limite <span style="color: #00F;">:=</span> fecha_actual <span style="color: #00F;">+</span> <span style="color: #00F;">&#40;</span>in_dias<span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=VARCHAR"><span style="color: #00F;">VARCHAR</span></a> <span style="color: #00F;">||</span> <span style="color: #F00;">' days'</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTERVAL"><span style="color: #00F;">INTERVAL</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FOR"><span style="color: #00F;">FOR</span></a> row_fechas <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> fecha_actual <span style="color: #00F;">+</span> s<span style="color: #00F;">.</span>a <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> fecha <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> generate_series<span style="color: #00F;">&#40;</span><span style="color: #800;">0</span><span style="color: #00F;">,</span>in_dias<span style="color: #00F;">,</span><span style="color: #800;">1</span><span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> s<span style="color: #00F;">&#40;</span>a<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=EXTRACT"><span style="color: #000;">EXTRACT</span></a><span style="color: #00F;">&#40;</span>DOW <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> row_fechas<span style="color: #00F;">.</span>fecha<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTO"><span style="color: #00F;">INTO</span></a> dia<span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">&#40;</span>dia <span style="color: #00F;">=</span> <span style="color: #800;">6</span><span style="color: #00F;">&#41;</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=THEN"><span style="color: #00F;">THEN</span></a><br />
dias_extras <span style="color: #00F;">:=</span> dias_extras <span style="color: #00F;">+</span> <span style="color: #800;">2</span><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><span style="color: #00F;">;</span><br />
dias_extras_alt <span style="color: #00F;">:=</span> <span style="color: #800;">0</span><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FOR"><span style="color: #00F;">FOR</span></a> row_fechas_alt <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IN"><span style="color: #00F;">IN</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> fecha_actual <span style="color: #00F;">+</span> s<span style="color: #00F;">.</span>a <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> fecha <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> generate_series<span style="color: #00F;">&#40;</span><span style="color: #800;">0</span><span style="color: #00F;">,</span>in_dias<span style="color: #00F;">+</span>dias_extras<span style="color: #00F;">,</span><span style="color: #800;">1</span><span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=AS"><span style="color: #00F;">AS</span></a> s<span style="color: #00F;">&#40;</span>a<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=SELECT"><span style="color: #00F;">SELECT</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=EXTRACT"><span style="color: #000;">EXTRACT</span></a><span style="color: #00F;">&#40;</span>DOW <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=FROM"><span style="color: #00F;">FROM</span></a> row_fechas_alt<span style="color: #00F;">.</span>fecha<span style="color: #00F;">&#41;</span> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTO"><span style="color: #00F;">INTO</span></a> dia<span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">&#40;</span>dia <span style="color: #00F;">=</span> <span style="color: #800;">6</span><span style="color: #00F;">&#41;</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=THEN"><span style="color: #00F;">THEN</span></a><br />
dias_extras_alt <span style="color: #00F;">:=</span> dias_extras_alt <span style="color: #00F;">+</span> <span style="color: #800;">2</span><span style="color: #00F;">;</span><br />
<span style="color: #080; font-style: italic;">/**<br />
* Las siguientes 3 lineas se descomentan si se desea utilizar una tabla que mantenga los feriados<br />
* con fecha absoluta(25 de Diciembre -&amp;gt; 25/12/2009(Formato SQL, EURUPEO))<br />
*/</span><br />
<span style="color: #080; font-style: italic;">--ELSE IF(row_fechas_alt.fecha IN (SELECT fecha FROM utilidades.tbl_feriados) AND dia != 0)THEN</span><br />
<span style="color: #080; font-style: italic;">--dias_extras_alt := dias_extras_alt + 1;</span><br />
<span style="color: #080; font-style: italic;">--END IF;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=IF"><span style="color: #00F;">IF</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=LOOP"><span style="color: #00F;">LOOP</span></a><span style="color: #00F;">;</span><br />
retorno <span style="color: #00F;">:=</span> fecha_limite <span style="color: #00F;">+</span> <span style="color: #00F;">&#40;</span>dias_extras_alt<span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=VARCHAR"><span style="color: #00F;">VARCHAR</span></a> <span style="color: #00F;">||</span> <span style="color: #F00;">' days'</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">::</span><a href="http://www.oracle.com/pls/db92/db92.drilldown?word=INTERVAL"><span style="color: #00F;">INTERVAL</span></a><span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=RETURN"><span style="color: #00F;">RETURN</span></a> retorno<span style="color: #00F;">;</span><br />
<a href="http://www.oracle.com/pls/db92/db92.drilldown?word=END"><span style="color: #00F;">END</span></a><span style="color: #00F;">;</span><br />
$BODY$<br />
LANGUAGE PLpgSQL<br />
CALLED <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=ON"><span style="color: #00F;">ON</span></a> <a href="http://www.oracle.com/pls/db92/db92.drilldown?word=NULL"><span style="color: #00F;">NULL</span></a> INPUT<br />
VOLATILE<br />
EXTERNAL SECURITY INVOKER<span style="color: #00F;">;</span></div></td></tr></tbody></table></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;t=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+&amp;body=Link: http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Una%20funci%C3%B3n%20en%20PL%2FpgSQL%2C%20que%20permite%20saber%20el%20proximo%20d%C3%ADa%20h%C3%A1bil%20dependiendo%20de%20dos%20valores%3A%0D%0A%0D%0A%09Cuantos%20d%C3%ADas%0D%0A%09Fecha%20de%20Inicio%0D%0A%0D%0AEl%20uso%20es%20de%20la%20siguiente%20forma%20para%20los%20pr%C3%B3ximos%2015%20d%C3%ADas%20h%C3%A1biles%20a%20contar%20de%20hoy%3A%0D%0A%0D%0ASELECT%20utilidades.proximo_dia_habil%2815%2C%20current_date%29%3B%0D%0A%0D%0A%0D%0AAqu%C3%AD%20la%20funci%C3%B3n" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/&amp;title=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL+" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Pr%C3%B3ximo+d%C3%ADa+h%C3%A1bil+en+PostgreSQL++-+http://b2l.me/fkf9&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/proximo-dia-habil-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cambiar programa por defecto en MAC</title>
		<link>http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/</link>
		<comments>http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 13:34:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[cambiar extensiones archivos]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[rcdefaultapp]]></category>

		<guid isPermaLink="false">http://manuel.radiohead.cl/?p=4</guid>
		<description><![CDATA[Uno de los grandes inconvenientes que siempre he tenido en Leopard es el cambio del programa por defecto para un...]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-7" style="border: 0px solid black;" title="rcdefaultapp" src="http://manuel.radiohead.cl/wp-content/uploads/2009/10/rcdefaultapp-300x205.jpg" alt="rcdefaultapp" width="240" height="164" />Uno de los grandes inconvenientes que siempre he tenido en Leopard es el cambio del programa por defecto para un tipo de archivo determinado. Específicamente el problema me sucedió con los .<strong>RAR</strong>, los cuales quería abrir con <strong>StuffIt Expander</strong>, pero siempre me abría <strong><span style="text-decoration: line-through;">Internet Explorer</span></strong>(App de BootCamp) por defecto aún realizando el procedimiento para cambiar el programa por defecto a través del Finder.</p>
<p>Bueno, cuento corto. Necesitaba una aplicación que hiciera el trabajo por mi y pudiese controlar todo tipo de extensiones asociadas a programas en OS X. Fué así como me topé con <a href="http://www.rubicode.com/Software/RCDefaultApp/">RCDefaultApp</a>. Aplicación que se instala en las <strong><em>Preferencias del Sistema</em></strong> y permite gestionar todas las extensiones asociadas en tu Mac.</p>
<p>Sitio Web: <a href="http://www.rubicode.com/Software/RCDefaultApp/">http://www.rubicode.com/Software/RCDefaultApp/</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/&amp;title=Cambiar+programa+por+defecto+en+MAC" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/&amp;t=Cambiar+programa+por+defecto+en+MAC" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Cambiar+programa+por+defecto+en+MAC&amp;body=Link: http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Uno%20de%20los%20grandes%20inconvenientes%20que%20siempre%20he%20tenido%20en%20Leopard%20es%20el%20cambio%20del%20programa%20por%20defecto%20para%20un%20tipo%20de%20archivo%20determinado.%20Espec%C3%ADficamente%20el%20problema%20me%20sucedi%C3%B3%20con%20los%20.RAR%2C%20los%20cuales%20quer%C3%ADa%20abrir%20con%20StuffIt%20Expander%2C%20pero%20siempre%20me%20abr%C3%ADa%20Internet%20Explorer%28App%20de%20BootCamp" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/&amp;title=Cambiar+programa+por+defecto+en+MAC" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Cambiar+programa+por+defecto+en+MAC+-+http://b2l.me/fnpz&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://manuel.radiohead.cl/2009/cambiar-programa-por-defecto-en-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
