miércoles, 3 de abril de 2013

¿Cómo se puede formatear cadenas de texto?


Cuando tenemos un texto y hacemos lo siguiente:
Console.WriteLine("La cantidad de dinero que tengo en el banco es : {0:C}",dinero);

Ese :C de más quiere decir que formatearemos la entrada como una moneda, por ejemplo en el caso del peso Colombiano, yen japonés, el euro alemán o el peso mexicano. La C determina el tipo de formato, y la cultura, la forma de llevarlo a cabo.

Otros ejemplos son: D para decimal, E para notación exponencial o científica, F para punto decimal fijo (i.e. 4 => 4.0), G para la versión general, es decir, la más compacta posible; N para un número con separador de miles, decimales, etc.; P para porcentaje, R para redondear, X para hexadecimal.

 s = string.Format("{0:D}", 99901); // s == 99901
s = string.Format("{0:D10}", 99901); // s == 0000099901
s = string.Format("{0:E}", 1983.42"); // s == 1.98342E+003
s = string.Format("{0:F2}", 1983"); // s == 1983.00
s = string.Format("{0:F3}", 1983.4266"); // s == 1983.427
s = string.Format(japones, "{0:N}", 1983.55); // s == 1.983,55
s = string.Format("{0:P}", 0.42); // s == 42 %
s = string.Format("{0:X4}", 255); // s == 00FF
Si ninguna de estas nos satisface, podemos crear nuestro propio formato mediante el formato de números especializado. Para hacer esto, podemos colocar en lugar del D, E, C, etc., un 0 para representar un dígito, si existe, o un cero si no; un # para representar un dígito si existe, si no, no muestra nada; El punto . para separar decimales y la coma para separar grupos. Asimismo, tenemos % para porcentaje, ‰ para por-miles, E0 para notación exponencial, ‘cadena’ para poner una cadena de texto fija.

 s = string.Format("{0:0,00.00#:D}", 99.1); // s == 0,99.10
s = string.Format(aleman, "{0:0,00.00#:D}", 99.1); // s == 0.99,10
s = string.Format("{0:000,000.000}", 9991); // s == 009,991.000
s = string.Format("{0:#,#00}", 99.1); // s == 99
s = string.Format("{0:#,#00}", 9.1); // s == 09
s = string.Format("{0:#,#00}", 9999.1); // s == 9,999
s = string.Format("{0:##-###-##}", 99942); // s == 999-42
s = string.Format("{0:##-###-##}", 4299942); // s == 42-999-42
El formato también podemos aplicarlo a las fechas, de forma muy similar a como se aplica para números. Existen muchos formatos, pero los más utilizados son los siguientes: se usa la d y D para una fecha corta y una fecha larga, respectivamente; f y F para fecha con tiempo corto y largo, u y U para formato universal corto y largo.

 CultureInfo enUS = new CultureInfo("en-US");
CultureInfo deDE = new CultureInfo("de-DE");
CultureInfo esMX = new CultureInfo("es-MX");

DateTime tm = new DateTime(2012, 12, 04, 11, 05, 42);
s = string.Format(esMX, "{0:d}", tm); // s == 12/04/2012
s = string.Format(esMX, "{0:d}", tm); // s == 04/12/2012
s = string.Format(deDE, "{0:D}", tm); // s == Dienstag, 4. Dezember 2012
s = string.Format(enUS, "{0:f}", tm); // s == Tuesday, 4 Dic, 2012 11:05
Etcétera. También podemos utilizar formato especial usando y, M, d, m, h, M, s para representar año, mes, día, minuto hora, segundo, etc. Por ejemplo, cuatro yes suponen año en formato de cuatro dígitos, como 1983. Dos yes y tendríamos 83.

 s = string.Format(esMX, "{0:ddd d MMM}", tm);
// s == mar 4 dic
s = string.Format(esMX, "{0:dddd d MMMM}", tm);
// s == martes 4 diciembre
s = string.Format(esMX, "{0:H mm ss}", tm);
// s == 11 05 42
s = string.Format(esMX, "{0:y yy yyyy yyyyy}", tm);
// s == 2 12 2012 02012

lunes, 1 de abril de 2013

Calico Electronico

Esta es una animación que me a entretenido demasiado, es graciosa y sirve como relajación de tanto trabajo y estudio.

Cálico Electrónico 1ª Temporada Capítulo 1: Culones





Cálico Electrónico 2ª Temporada Capítulo 1: El fin de Cálico