Umwandeln einer Ausgabe aus time_t in ein besser lesbares Format

lass es dir als Zahl (long) ausgeben. Oder noch besser, schau es dir mit dem Debugger an. Und den Rückgabewert auch.

Und poste am besten auch noch den Quellcode hier, damit jeder weiß wovon du sprichst.
 
Hast du mal den Beispielcode von oben ausgeführt?

Die Zahl wäre ungefähr der 08.05.2289
 
Zuletzt bearbeitet:
Sorry, man solte die ganze Antwort lesen.
Hier der Code:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <time.h>

int
main(void)
{
int   i;
int   num_jobs;
cups_job_t  *jobs;

num_jobs = cupsGetJobs(&jobs,NULL,1,1);

if(num_jobs > 0)
{
printf("%d job(s) found:\n", num_jobs);
puts(" ");
puts(" ");

for (i = 0;i < num_jobs; i++)
{
time_t crt = jobs[i].creation_time;
time_t cmt = jobs[i].completed_time;
time_t prt = jobs[i].processing_time;

struct tm* starttime;
struct tm* endtime;
struct tm* processtime;

starttime = localtime(&crt);
endtime = localtime(&cmt);
processtime = localtime(&prt);

printf("  %d=%s=%s=%s=%dk=%s=%s=%s\n ",
jobs[i].id, jobs[i].dest, jobs[i].title, jobs[i].user, jobs[i].size, asctime(starttime), asctime(endtime), asctime(processtime));
}
}
else
puts("No Jobs found");

return(0);
}


Danke
 
hm - ich kann nichts auffälliges entdecken. Kannst du mal von einem job diese Werte zur Laufzeit mit dem Debugger auslesen?
Code:
time_t crt = jobs[i].creation_time;
time_t cmt = jobs[i].completed_time;
time_t prt = jobs[i].processing_time;
 
Mangels Debugger habe ich jeweils den Wert der Variablen ausgeben lassen. Die lauten in Longinteger:
crt: 10077704475
cmt: 10077704526
prt: 0

startingtime 10005156440
endtime 10005156440
processtime: 10005156440

In meinen Augen sieht es so aus als wenn die Funktion localtime den Wert verfälschen würde.
 
Vielen Dank, Squeeker

Das Problem lag an dem dritten Wert, prt. Dieser Wert hatt alle folgenden Nummern genullt und das hat die Endwerte verfälscht.

An sonsten läuft das Programm einwandrfei.

Nochmals Vielen Dank für die Geduld
 
Zurück