Zeitzone als Wert

Shooter2k

Erfahrenes Mitglied
Hallo Forum,
ich bin's wieder :) Habe da noch eine Frage. Kann man sich die Zeitzone als "Wert" ausgeben lassen? Wenn ich mit der time.h arbeite, dann kann ich mir die Zeitzone (%Z) als Text ausgeben lassen. Wie z.B. -> Mitteleuropäische Zeit ich bräuchte allerdings eine Zahl wie +1 oder +12 für Fidschi. Hat jemand vielleicht eine Idee?

Bisher sieht mein Script so aus:

Code:
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
#include <ctime> 
#include <time.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>

using namespace std;

int main(void)
{
	 time_t t1, t2;
    struct tm date1, date2;
    char msg[1024];
    
    /* setze Locale */
    if (NULL == setlocale( LC_ALL, "")) {
        printf( "unable to set locale\n");
    }
 
    /* Initialisiere struct tm mit dem 1.2.2001 */
    memset( &date1, 0, sizeof(date1));
    date1.tm_mday = 1;
    date1.tm_mon = 2 - 1; /* Februar */
    date1.tm_year = 2001 - 1900;
    
    /* Wochentag und Tag des Jahres bestimmen */
    mktime( &date1);
    
    strftime( msg, sizeof(msg), "Der %d.%m.%Y war ein %A.\n", &date1);
    printf( msg);
    strftime( msg, sizeof(msg), "Das war der %j. Tag des Jahres.\n", &date1);

	strftime( msg, sizeof(msg), "Die Zeitzone ist %Z .\n", &date1);
    printf( msg);
	
	system("PAUSE");
    return 0;
}


Vielen Dank
 
Hiho ;-)
hat sich schon erledigt ich habe einen Weg gefunden.

Lösung:
Code:
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
#include <ctime> 
#include <time.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
using namespace std;

int getTimeZone()
{
	const char *d;
    time_t now;
    struct tm l, g;
    int dt;

    time(&now);
    l = *localtime(&now);
    g = *gmtime(&now);

    dt = (int)difftime(now, mktime(&g));
    dt = dt / 3600;

	return dt;
}

int main(void)
{

 
    int zone = getTimeZone();
	cout << zone;

	system("PAUSE");
    return 0;
}

trotzdem danke ;-)
gruß
 
Zurück