ho un problemino a gestire le date, in pratica devo fare in un programma, in modo che se inserisco un'ora in un timedialog, questo mi restituisce, in microsecondi (o anche in secondi) il tempo che c'è tra l'ora corrente e l'ora settata, ho realizzato questo codice, ma mi ritorna dati sballati! :S
TTime setTime;
TTime nowTime;
TTimeIntervalMicroSeconds mc;
setTime.HomeTime();
CAknTimeQueryDialog* timeDialog = CAknTimeQueryDialog::NewL(setTime,CAknQueryDialog::ENoTone);
timeDialog->SetPromptL(_L("Insert the restart time"));
if (timeDialog->ExecuteLD(R_TIME_QUERY))
{
nowTime.HomeTime();
mc = setTime.MicroSecondsFrom(nowTime);
//per il debug, cancella poi queste righe di codice:
TInt64 prova = mc.Int64();
TBuf<32> buf(_L("VAL: "));
buf.AppendNum(prova);
RDebug::Print(buf);
}
poi nell'rss:
RESOURCE DIALOG r_time_query
{
flags = EGeneralQueryFlags;
buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
items =
{
DLG_LINE
{
type = EAknCtQuery;
id = EGeneralQuery;
control = AVKON_DATA_QUERY
{
layout = ETimeLayout;
control = TIME_EDITOR
{
minTime = TIME
{
second = 0;
minute = 0;
hour = 0;
};
maxTime = TIME
{
second = 59;
minute = 59;
hour = 23;
};
flags = EEikTimeWithoutSecondsField | EEikTimeForce24HourFormat;
};
};
}
};
}
il print di questo codice mi ritorna:
VAL: -63348652746109000 19:34 -> 19.35
dove 19.34 era l'ora dell'emulatore e 19.35 è l'ora che avevo settato dal timedialog, i conti non tornano! tra l'altro è anche negativo! :S
ho anche provato ad invertire nowTime cn setTime:
mc = nowTime.MicroSecondsFrom(setTime);
ed ho ottenuto:
VAL: 63348652770734000 19:35 -> 19.36
non capisco perchè nn vada... ma che confronto di date fa? nn riesco proprio a capirlo! :S help me!!!
Messaggio modificato da dokkis il 29 maggio 2007 - 20:43

Aiuto


















Pubblicità