time.h, strftime(...) und Konsorten



  • hEY gUYS,
    und mal wieder geht es um time.h und Konsorten.
    wie kann ich mir in

    string supplyTime(char);
    

    den Umweg über

    timeRet=t;
    

    sparen?

    /*
    Warum überhaupt diese Fkt und nicht gleich immer strftime()? - weil ich zB

    cout<<"..."<<supplyTime('D')<<endl;
    

    möglich machen möchte.
    */

    string supplyTime(char form){
    
    	time_t currentTime = time(NULL); 
    	tm *now = localtime(&currentTime);
    
    	const short t_MAXLEN=40;
    	char t[t_MAXLEN];
    	string timeRet="",
    		   format="";
    
    	switch( form ){
    		case 'd':
    			format = "%d%m%Y";
    			break;
    		case 'D':
    			format = "%A, %d.%B%Y";
    			break;
    		case 't':
    			format = "%X";
    			break;
    		case 'T':
    			format = "%Hh %Mm %Ss";
    			break;
    		default:
    			format = "%A, %d.%B%Y %X";
    	}
    
    	strftime(t,t_MAXLEN,format.c_str(),now);
    
    	timeRet=t;
    
    	return timeRet;
    }
    

    andere schon oft gestellte Frage: wie komme ich an die millisekunden?



  • freshman schrieb:

    wie kann ich mir den Umweg über

    timeRet=t;
    

    sparen?

    return t;

    andere schon oft gestellte Frage: wie komme ich an die millisekunden?

    glaube das hängt vom Betriebssystem ab.



  • sorry für die späte Rückmeldung
    @DrGreenthumb: thanx' a lot 👍
    ich glaube das war das einzige, das ich nicht ausprobiert habe. wußte nicht, daß ich als Rückgabetyp einer Fkt string definieren und ein char-array zurückgeben kann, obwohl die Klasse string ja eh über eine c-string realisiert ist.



  • freshman schrieb:

    wußte nicht, daß ich als Rückgabetyp einer Fkt string definieren und ein char-array zurückgeben kann, obwohl die Klasse string ja eh über eine c-string realisiert ist.

    Nicht ganz.
    Das funktioniert nur deshalb, weil die Klasse string als Konstruktor-Argument, einen char* nimmt.



  • @DrGreenthumb: thanx', zum Glück habe ich noch meinen Azubi-Bonus 🙄
    (Dr > Azubi)!=0


Anmelden zum Antworten