Cansado de buscar información sobre algo y encontrar miles de páginas de código que en la mayoría de los casos no resuelven el problema que quiero solucionar, he realizado este apartado para exponer código que solucione un problema determinado, y que esté lo mejor explicado posible.
Si quieres compartir una rutina en un lenguaje determinado y que la publique, sólo tienes que decírmelo. Me mandas un correo, la discutimos y la publicamos. Mi intención es que el código presentado sea “definitivo”, si existiera algún error en el mismo se corregiría para dejar una versión final y funcional.
- 04/enero/2009 – Código asp.net con C# que genera una tabla de un mes/año determinado. Además, marca los años bisiestos en rojo. (ver artículo)
La idea es realizar una lista de tipo dropdownlist con los 10 años anteriores y 15 años posteriores al año actual (marcándose de color rojo los años bisiestos) así como una lista con los meses del año. Al seleccionar un año y mes determinado, se genera una tabla con los días de la semana de dicho mes/año.


El código fuente ha sido realizado por Jose Rodríguez Villanueva y lo ha cedido para que la comunidad pueda usarlo, siempre y cuando respeten su autoría.
Código fuente completo:
Autor: Jose Luis Rodriguez Villanueva
- 22/agosto/2006 – Iframe frente a frames (marcos). Uso del target.
Antiguamente era común el uso de marcos (frames) en las páginas Web ya que implicaba tener que recargar sólo el marco que cambiaba y no toda la página completa. Mirado de esta forma es bastante interesante, sin embargo planteba algunos problemas entre los que podemos destacar: que el uso de marcos era mucho más pesado; no todos los navegadores lo soportaban; limitado diseño.
Actualmente existe una alternativa a los antiguos marcos, el iframe, que permite cargar un elemento externo en ese marco… llamémoslo virtual. Dicho elemento externo puede ser desde una imagen a una página html completa.
La duda se me planteó de la siguiente manera: ¿Y cómo recargo un marco a través de un enlace href de forma directa?
Muy fácil, como se hacía con los frames antiguos, con el target. Un ejemplo claro:<table> <tr> <td><!-- Menú --> <a href="pagina_1.html" target="destinoiframe">Página 1</a><br/> <a href="pagina_2.html" target="destinoiframe">Página 2</a><br/> </td> <td><!-- Iframe --> <iframe name="destinoiframe" src="paginadefecto.html"></iframe> </td> </tr> </table>
Nota: No se te ocurra poner el atributo id a la etiqueta iframe, ya que no funcionará nada.
Para cualquier consulta respecto a todos los atributos de todas las etiquetas dadas o para evaluar cuál es mejor o peor, mira la documentación oficial al respecto. - 28/mayo/2006 – Calculadora Simple en C# (ver artículo).
Documento PDF: Calculadora (PDF)
Código fuente completo:
o
. (Modificado el 08 de marzo de 2009)
UNA PREGUNTA CON RESPECTO A LA CALCULADORA, ESTOY CREANDO UNA PERO TENGO UN PROBLEMA, CUANDO SUMO RESTO O MULTIPLICO, ME MUESTRA EL RESULTADO, PERO AL QUERER HACER UNA NUEVA OPERACION COMO HAGO PARA QUE CUANDO YO INTRODUSCA UN NUMERO DESPUES DEL OPERADOR EL TEXBOX SE BORRE????
MUCHAS GRACIAS AL QUE ME PUEDA COLABORAR
x>Te puede guiar http://forohtml5.com/index.php/board,1.0.html mucha suerte
Muy bueno… no lo conocía.
Ya me he suscrito a través de RSS.
Gracias por tu aportación.
Hola @Juan Francisco:
¿Cuál mejorarías? ¿El de la función redondeo? ¿El del Iframe? ¿El de la calculadora?
¿Cómo lo mejorarías? Por favor, haz tus aportaciones. Si realmente son buenas NO dudes en que lo cambiaré y además, pondré que tú has realizado dichas aportaciones.
Gracias.
Creo que eres un poco chapuza poniendo código. No creo que estés en la obligación de hacerlo pero ya que lo haces creo que deberías hacerlo bién. Te lo digo porque si le hechas un vistazo verás que le faltan cosas al código y si alguien recurre a tu código para aprender sólo conseguirás confundirlo.
buen dia señor ingeniero soy estudiante de sistemas y estamos haciendo un proyecto de tesis de un almacen control interno de la universidad solo ingresos actualmente el almacen no cuenta con un sistema automatisado todo es manual y estamos en la etapa de analisis y entramoa a programacion y en mi primera clase de c# nos pidio hacer una calculadora con las especificaciones cuando pongas una numero 0 o 44.559 q muestre 44.56 algo haci gracias por su ayuda soy de peru de la universidad del cusco unsaac gracias por su respuesta
// FUNCION 1 que llama a la FUNCION 2
string redondeo(string valor, string decimales)
{
// Tomamos el caracter de separación “.” o “,” de nuestro sistema
string separador = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator.ToString();
// Valor pasado lo convertimos a numérico.
double val = Convert.ToDouble(valor.Replace(“.”, separador));
int deci = Convert.ToInt16(decimales);
return redondeo(val, deci).ToString();
}
// FUNCION 2: La que realiza realmente el redondeo
// valor es el número a redondear
// decimales es la cantidad de decimales deseada
double redondeo(double valor, int decimales)
{
double salida;
string separador = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator.ToString();
int posdecimales = valor.ToString ().IndexOf(separador);
if (posdecimales == -1) return valor; // Ya que no tiene decimales
// Si llegamos a este punto, existen decimales
try {
byte digitosiguiente = Convert.ToByte(valor.ToString().Substring(posdecimales+decimales+1,1));
if (digitosiguiente == 5)
{
// La funcin round falla cuando es justo 5, as que le sumamos 1
// para convertirlo en un 6 y que as haga bien el redondeo
valor = Convert.ToDouble(valor.ToString().Substring(0,posdecimales+decimales+1)+”6″+valor.ToString().Substring(posdecimales+decimales+1));
}
salida = System.Math.Round(valor,decimales);
}
catch
{
salida = System.Math.Round(valor,decimales);
}
return salida;
}
NOTA: Esta función se puede mejorar cambiando Double por Decimal. La razón es que el tipo de datos double tiene unas limitaciones que según los casos puede dar problemas.
Por otro lado pueden preguntar… ¿y para qué hacer estas funciones si existen funciones matemáticas de redondeo? La razón es que (hasta ese momento y ahora mismo no sé si lo han arreglado) cuando intentabas dedondear un valor del tipo 5,5 dichas funciones no lo convertían a 6, sino a 5 (es decir, truncaban).
Espero haber sido claro y que les sea de ayuda.