[C con Clase] Formato de fecha y simbolo !

Steven Davidson srd4121 en njit.edu
Jue Jul 7 02:07:30 CEST 2011


Hola Antonio,

2011/7/6 Antonio Cascales <antonio.cascales en gmail.com>

> **
> Hola a todos:
>
>    Muchas gracias por los diferentes mensajes con las respuestas, ya parece
> que empiezo a entender los conceptos de arrays y punteros, aunque hasta que
> no haga algunos ejemplos, practique un poco, y vea que me salen bien, no
> podré decir que lo tengo dominado.
>
>    ahora me gustaría haceros una preguntita no muy complicada. He visto un
> ejemplo, relativamente sencillo para mostrar la fecha actual, pero me surge
> un inconveniente, y es que cuando voy a mostrarla con asctime(fecha), me la
> muestra con el formato inglés, y yo quiero modificar el formato, para que me
> diga por ejemplo, Miércoles 6 de Junio de 2011. ¿podéis indicarme de que
> manera podría hacerlo?
>
>

Me temo que 'asctime()' no ofrece tal flexibilidad. Sin embargo, puedes usar
'strftime()' que sirve para crear una cadena con la fecha y hora que
indiques a través de una estructura 'tm' al igual que con una cadena
de formato. La ventaja de esta función es que sí toma en cuenta la localidad
que indiques. Por ejemplo, en una plataforma que se usa el español, las
fechas y hasta cierto punto las horas se muestran en español. Por ejemplo,

char szResultado[128] = "";
time_t ahora = time(NULL);
setlocale( LC_ALL, "" );
strftime( szRes, 128, "%a %b %d %X %Y", localtime( &ahora ) );
cout << szRes << endl;

Como puedes observar (leer), invocamos 'setlocale()' con una
cadena nula, para que las bibliotecas estándares cambien la localidad a la
de la plataforma. Si tu sistema operativo tiene instalado la localidad
española, entonces ciertas funciones estándares de ANSI C/C++ tomarán en
cuenta las diferencias culturales al igual que el idioma. En este ejemplo,
obtengo lo siguiente:

jue jul 07 1:59:09 2011

Para más información acerca de estas funciones, visita la página de
referencia yendo a:  http://c.conclase.net/librerias/?ansilib=locale#inicio
y  http://c.conclase.net/librerias/?ansilib=time#inicio


>    Y otra consultita, bastante sencilla pero que no termino de entender, es
> el símbolo '!' cuando se utiliza en if, do-while, while, etc.
>
>

Bueno, esto ya te han respondido varios socios y con frecuencia. Sólo quiero
dejar claro que el operador ! es booleano. Es decir, tiene que ver con la
verdad. El operador ! simboliza la operación NOT ("no", en español) o de
negación que, en la lógica clásica, se simboliza así: ¬  Básicamente,
cualquier operando, como puede ser una expresión, es negado; es decir, algo
verdadero pasa a ser "no verdadero" y por tanto, falso. Lo mismo ocurre con
"falso" que negado pasa a ser "no falso" y por tanto, verdadero.

El capítulo 4 del curso de C++ trata sobre este operador y demás lógicos, al
igual que una pequeña introducción acerca de la lógica. El enlace es:
http://c.conclase.net/curso/index.php?cap=004c#Op_logicos


Espero que todo esto te sirva.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110707/f722b0c8/attachment.html>


Más información sobre la lista de distribución Cconclase