Go Down

Topic: Ore minuti secondi e data sempre con due caratteri (Read 512 times) previous topic - next topic

Salve a tutti, sto smanettando con il modulo RTC e pare vada tutto ok, ho pescato uno sketch in rete per testarlo e l'ho modificato, "stirato", incollato e "smontato" per vedere se posso fare quello che mi interessa. Di seguito il codice:

#include <Wire.h>
#include "RTClib.h"

RTC_Millis RTC;

void setup () {
   Serial.begin(9600);
   // following line sets the RTC to the date & time this sketch was compiled
   RTC.begin(DateTime(__DATE__, __TIME__));
}

void loop () {
   DateTime now = RTC.now();
   
   Serial.print(now.day(), DEC);
   Serial.print('/');
   Serial.print(now.month(), DEC);
   Serial.print('/');
   Serial.print(now.year(), DEC);
   Serial.print(' ');
   Serial.print(now.hour(), DEC);
   Serial.print(':');
   Serial.print(now.minute(), DEC);
   Serial.print(':');
   Serial.print(now.second(), DEC);
   Serial.println();
   
   Serial.println();
   delay(1000);
}

Il problema è che ho cercato di far uscire i secondi, minuti, ore e la data con un decimale anteponendo lo zero davanti per avere sempre lo stesso numero di caratteri occupati nella riga, ecco di seguito cosa intendo:

11/1/2013 23:5:4 scriverlo come --> 11/01/2013 23:05:04

ma non ci sono riuscito, avete qualche suggerimento da darmi?

Alberto

leo72

Fai un semplice controllo: se il valore è inferiore a 10, stampi prima uno "0" e poi il numero, altrimenti stampi il numero.
Creati una semplice funzioncina che accetta il numero da controllare in ingresso, così la adatti a tutti i casi (che sia giorno, mese, ore, minuti o secondi)

Ottimo leo72, ti ringrazio, ci avevo pensato anch'io ma credevo che esistesse già un comando con tutte le opzioni possibili tipo php.

Alberto

Go Up