누구든지 ctime을 사용하여 수학을 수행하는 방법을 알고 있습니까? 나는 "time_t"(보통은 그렇듯이)에서 초 단위로 시간을 얻을 수 있어야하고 시간과 날짜를 얻기 위해 time_t를 ctime에 입력하기 전에 그 시간에서 초 수를 뺀다.ctime 및 time_t 수학
그래서 기본적으로 그것은 매우 많은 초 전에 날짜를 계산합니다.
누구든지 ctime을 사용하여 수학을 수행하는 방법을 알고 있습니까? 나는 "time_t"(보통은 그렇듯이)에서 초 단위로 시간을 얻을 수 있어야하고 시간과 날짜를 얻기 위해 time_t를 ctime에 입력하기 전에 그 시간에서 초 수를 뺀다.ctime 및 time_t 수학
그래서 기본적으로 그것은 매우 많은 초 전에 날짜를 계산합니다.
당신이 시도 할 수 :
time_t now = time(NULL);
struct tm now_tm = *localtime(&now);
now_tm.tm_sec -= 50; // subtract 50 seconds to the time
now_tm.tm_sec +=1000; // add 1000 sec to the time
printf("%s\n", asctime(&now_tm));
time_t는 필수 유형입니다. 항상 초를 나타 내기 때문에 자유롭게 정수를 더하거나 뺄 수 있습니다.
예 :
time_t now = time(nullptr);
time_t one_minute_ago = now - 60;
std::cout << ctime(&one_minute_ago) << std::endl;
time_t 날짜와 시간의 가장 기본적인 표현은 타입 time_t입니다. time_t 변수의 값은 1970 년 1 월 1 일 이후의 초 수로, 때때로 Unix 시대를 호출합니다. 이 값을 비교하기 쉽기 때문에 이벤트의 시작 및 종료 시간을 내부적으로 표현하는 가장 좋은 방법입니다. 구조체 TM time_t는 하나의 숫자로 날짜와 시간을 나타내는 반면, 구조체 TM 숫자의 많은 구조체로 표현 : 당신은에 써서 time_t 값을 변환 할 수 있습니다
struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
};
변환 의 현지 함수를 사용하여 구조체 TM 값 : 그래서
struct tm startTM;
time_t start;
/* ... */
startTM = *localtime(&start);
을,이
같은 초 일련 번호를 뺄 뺄 수 있습니다startTm.tm_sec -= somesecond;
추가 변환이
ctime(&start)
는 것이 도움이 할 수있는 희망이
struct tm startTM;
time_t start;
/* ... */
start = mktime(&startTM);
처럼 time_t와 날짜를 변환 ctime이 재미를 사용합니다!
나는 time_t가 일반적으로 두 번째는 아니지만 항상 – deeiip
이 아니라고 생각한다. time_t는 추상화 된 것으로 간주되지만 실제로는 요즘은 보통 초당 64 비트이다. – seand