C++/C++ Common

시간 출력

doublerabbits 2022. 11. 5. 13:26
#include <iostream>
#include <chrono>
#include <Windows.h>

using namespace std;

time_t GetUnixTime()
{
	time_t tt;
	tt = time(NULL);
	return tt;
}

int GetUnixTimeSecond()
{
	return (int)GetUnixTime();
}

string GetTimeString()
{
	time_t tt = GetUnixTime();
	struct tm t;
	localtime_s(&t, &tt);

	//	char -> std::string.c_str() 변환 필요
	char timeChars[200];
	memset(timeChars, 0x00, 200);
	sprintf_s(timeChars, sizeof(timeChars), 
		"%04d-%02d-%02d %02d:%02d:%02d", 
		t.tm_year + 1900, 
		t.tm_mon + 1, 
		t.tm_mday, 
		t.tm_hour, 
		t.tm_min, 
		t.tm_sec);
	string timeString(timeChars);
	return timeString;
}

void SomeJob()
{
	Sleep(3000);
}

int main()
{
	cout << GetUnixTimeSecond() << endl;
	cout << GetTimeString() << endl;
	cout << endl;

	cout << "Job start" << endl;
	std::chrono::system_clock::time_point startTime = std::chrono::system_clock::now();
	SomeJob();
	std::chrono::system_clock::time_point endTime = std::chrono::system_clock::now();
	cout << "Job end" << endl;
	cout << endl;

	std::chrono::milliseconds milli = std::chrono::duration_cast<std::chrono::milliseconds>(endTime - startTime);
	std::chrono::microseconds micro = std::chrono::duration_cast<std::chrono::microseconds>(endTime - startTime);
	std::chrono::nanoseconds nano = endTime - startTime;

	cout << "Elasped time(millisecond) : " << milli.count() << endl;
	cout << "Elasped time(microsecond) : " << micro.count() << endl;
	cout << "Elasped time(nanosecond) : " << nano.count() << endl;

	int userInput;
	cin >> userInput;

	return 0;
}