Aus zwei Strings, die ein Datum enthalten ein Zeitintervall erzeugen...



  • Hallo,

    ich will eine Figur laufen lassen. Die Figur rennt zum Zeitpunkt t0 los und soll beim Zeitpunkt tk den Weg abgelaufen sein. Ich habe also einen Array mit sgane wir mal 18 Zeitwerten (==18 markanten Punkten).
    Nun habe ich Hindernisse, die sich bewegen. Zuerst interresiert mich nur wann taucht das Hinderniss auf und wann ist es wieder weg. Also pro Hinderniss Startzeit und eine Endzeit. Format dieser Zeitangaben ist 2006-07-28T02:00:00.000Z". Ich brauche aber nur 02:00:00
    das habe ich wie folgt gelöst:

    char* temp1 = strchr(object[j].start_time.c_str(), 'T');		
    if(temp1 !=NULL){
    	char cbTime[9] ="";																					
    
    	int n=0;
    	while(n<8){
    	*temp1++;													
    	cbTime[n]=*temp1;
    	n++;	
    	}
    	cbTime[n] = '\0';										
    	printf("Start Time:  %s  Object %s \n", cbTime, object[j].id);					
    }
    

    Die Endezeit funktionert genauso nur staht dann da:

    ...
    char* temp2 = strchr(object[j].end_time.c_str(), 'T');
    ...
    

    Damit bin auch soweit zufrieden. Ich würde jetzt aber gerne die Start- und die Endzeit int c++ Zeit konvertieren und dann sowas machen zu können:

    Zeitpunkt1 meiner Figur ist im Intervall [Startzeit1, Endzeit1] == Kolllision!! oder Zeitpunkt2 meiner Figur ist im Intervall [Startzeit2, Endzeit2] == Kolllision!!

    Ich weiß das ich eine bieliebige Zeitangabe vom typ time_t in einen char* konvertieren kann z.B.: mit char * ctime ( const time_t * timer );.
    Aber ich denke ich brauche den anderen Weg...

    Gruß
    Frank



  • Ich würde die Zeit wahrscheinlich in einen einzigen Wert umwandeln und dann kannst du so einen Vergleich realtiv leicht machen.


Anmelden zum Antworten