날짜에 초를 추가해야합니다. 예를 들어 2009127000000과 같은 날짜가있는 경우이 날짜에 초를 추가해야합니다. 또 다른 예는 20091231235957에 50 초를 더합니다.날짜를 초로 추가하십시오.
C에서 가능한가요?
날짜에 초를 추가해야합니다. 예를 들어 2009127000000과 같은 날짜가있는 경우이 날짜에 초를 추가해야합니다. 또 다른 예는 20091231235957에 50 초를 더합니다.날짜를 초로 추가하십시오.
C에서 가능한가요?
C 날짜/시간 유형 time_t는 특정 날짜 이후의 초 수로 구현되므로 초를 추가하려면 단순히 일반 산술을 사용하십시오. 이것이 당신이 요구하는 것이 아니라면 질문을 명확하게하십시오.
'time_t '는 일반적으로 초이지만 반드시 그런 것은 아닙니다. –
<time.h>
의 유형 및 기능을 사용하십시오.
time_t now = time(0);
time_t now_plus_50_seconds = now + 50;
time_t now_plus_2_hours = now + 7200;
<time.h>
는 time_t
및 struct tm
종류의 처리 기능을 선언합니다. 이 기능들은 당신이 원하는 모든 것을 할 수 있습니다.
해답이되어야합니다. 깨끗하고 깨끗하며 훌륭한 예가 있습니다. +1 – MyDaftQuestions
POSIX 2016에서'
POSIX에서 time_t
값은 초로 지정되어 있지만 C 표준에서는 보장되지 않으므로 POSIX가 아닌 시스템에서는 true가 아닐 수 있습니다. 일반적으로 (사실, 얼마나 자주 초를 나타내는 값이 아닌지 잘 모르겠습니다).
#include <time.h>
#include <stdio.h>
int main()
{
time_t now = time(NULL);
struct tm now_tm = *localtime(&now);
struct tm then_tm = now_tm;
then_tm.tm_sec += 50; // add 50 seconds to the time
mktime(&then_tm); // normalize it
printf("%s\n", asctime(&now_tm));
printf("%s\n", asctime(&then_tm));
return 0;
}
적절한로 시간 문자열을 구문 분석 : 여기
는
time_t
정말 조작 시간에 특히 좋은하지 않는 표준 라이브러리 기능을 사용하여 초를 나타냅니다지지 않습니다 시간 값을 추가하는 예입니다
struct tm
변수는 연습으로 남겨 둡니다.
strftime()
함수를 사용하여 새로운 형식을 지정할 수 있습니다 (POSIX
strptime()
함수는 구문 분석에 도움이됩니다).
하면이 같은 시도하지 : (참고 : 확인 오류) 나는 당신의 예에서 날짜 형식이 underspecified 생각
include <time.h>
char* string = ...;
char buf[80];
struct tm;
strptime(string, "%Y%m...", &tm);
tm->tm_isdst = 0;
strftime(buf, sizeof(buf), "%Y%m...", localtime(mktime(&tm) + 50));
합니다. 2009127000000은 12 월 7 일 또는 1 월 27 일 일 수 있습니다. – Thomas
@benjamin, ctime (날짜/시간 변환 함수) 및 strptime (시간의 문자열 표현을 시간 tm 구조로 변환)의 맨 페이지를 읽습니다. – Glen