Pages: [1]   Go Down
Author Topic: Descomponer cifras del año en un array de 4 caracteres [Solucionado]  (Read 531 times)
0 Members and 1 Guest are viewing this topic.
Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola

No consigo convertir las cifras del año que me retorna la funcion del RTC  now.year(),DEC  que es 2011 (el año en curso) en sus cuatro cifras, algo asi como:

    StringAno = (now.year(),DEC);
    FechaHora[0] = StringAno.charAt(0);
    FechaHora[1] = StringAno.charAt(1);
    FechaHora[2] = StringAno.charAt(2);
    FechaHora[3] = StringAno.charAt(3);

He probado de mil maneras, incluso el Itoa, pero todo son mensajes de conversiones invalidas de char a char* o  de INT a char*   etc... etc...

¿Alguien sabria decirme como descomponer la fecha en un array de 4 en el cual, cada posicion sea una cifra del año?

Gracias
« Last Edit: August 17, 2011, 03:49:18 pm by Heke » Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 711
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
Yo haría así para pasar un int a cadena char:

Code:
int anno;
char annotxt[5];

anno = 2011;
sprintf(annotxt, "%d", anno);
Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es la enésima vez que se contesta.

http://arduino.cc/forum/index.php/topic,69309.0.html

aquíe dejé la solucion hace unos dias. con la funcion calculadesdeASCII()

la utilizas como calculadesdeASCII(StringAno,posicion)
la posicion es donde esté la primera cifra., la funcion devuelve un int con el número que representa las cifras en caracteres.

Un saludo
Logged

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Muchisimas gracias Curro92 y SrDonGato

He empleado el ejemplo de Curro92 y por fin !!
No se que coñas hace esa funcion (sprintf) ni la conocia, pero voy a estudiarla a ver que tiene.

SrDonGato, Si que vi tu post, y vi el ejemplo, pero no estaban las librerias, pinchaba en

calculadesdeASCII(string,posicion)
calculadesdeASCIIHEX(string,posicion)

Pero no iba a ningun enlace tampoco, por lo que supuse que estabas con ellas o las tenias en otro post,veo que hoy las has puesto.

Prometo verlas, que ya las he descargado.

Lo dicho, gracias por vuestra ayuda, por fin puedo seguir.

Un saludo

Añado aqui el codigo de la solucion de Curro92, Buenisima !!
Code:
int anno;
char annotxt[5];

anno = 2011;
sprintf(annotxt, "%d", anno);

Y aqui añado tambien el que intentaba hacer funcionar yo, que despues de cambiar tantas cosas, tambien funciona y no lo vi en su momento por el enmierde de codigo que habia hecho, que , habia cambiado valores, pero bueno, esto tambien tira:
Code:
    String StringAno = "0000";

    StringAno = (now.year());        //  Esto es 2011
    FechaHora[0] = StringAno.charAt(0);    // Esto es 2
    FechaHora[1] = StringAno.charAt(1);    // Esto es 0
    FechaHora[2] = StringAno.charAt(2);    // Esto es 1
    FechaHora[3] = StringAno.charAt(3);    // Esto es 1
« Last Edit: August 17, 2011, 03:58:46 pm by Heke » Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

acabo de leer mejor y creo que lo que quieres es justo lo contrario ...

[edito]

Así es smiley-grin además estamos escribiendo a la vez smiley-grin
el link que te escribo es para hacer justo lo contrario, crei que te daba el valor en char y querias pasarlo a int.

Un saludo


« Last Edit: August 17, 2011, 02:53:26 pm by SrDonGato » Logged

Pages: [1]   Go Up
Jump to: