C 언어
C++ 표준 라이브러리는 적절한 날짜 유형을 제공하지 않습니다. C++는 C로부터 날짜 및 시간 조작을 위한 구조 및 함수를 상속합니다. 날짜 및 시간 관련 함수 및 구조에 액세스하려면 C++ 프로그램에
네 가지 시간 관련 유형이 있습니다:clock_t, time_t, size_t , 및 tm . clock_t, size_t 및 time_t 유형은 시스템 시간과 날짜를 일종의 정수로 나타낼 수 있습니다.
구조 유형 tm 다음 요소를 갖는 C 구조의 형태로 날짜와 시간을 보유합니다 -
struct tm { int tm_sec; // seconds of minutes from 0 to 61 int tm_min; // minutes of hour from 0 to 59 int tm_hour; // hours of day from 0 to 24 int tm_mday; // day of month from 1 to 31 int tm_mon; // month of year from 0 to 11 int tm_year; // year since 1900 int tm_wday; // days since sunday int tm_yday; // days since January 1st int tm_isdst; // hours of daylight savings time }
다음은 C나 C++에서 날짜와 시간을 다룰 때 사용하는 중요한 함수들이다. 이 모든 함수는 표준 C 및 C++ 라이브러리의 일부이며 아래 제공된 C++ 표준 라이브러리를 참조하여 자세한 내용을 확인할 수 있습니다.
Sr.No | 기능 및 목적 |
---|---|
1 | time_t 시간(time_t *시간); 1970년 1월 1일 이후 경과된 초 단위로 시스템의 현재 달력 시간을 반환합니다. 시스템에 시간이 없으면 .1이 반환됩니다. |
2 | char *ctime(const time_t *time); 일 월 년 시:분:초 년\n\0 형식의 문자열에 대한 포인터를 반환합니다. . |
3 | struct tm *localtime(const time_t *time); 이것은 tm에 대한 포인터를 반환합니다. 현지 시간을 나타내는 구조입니다. |
4 | clock_t clock(무효); 이것은 호출 프로그램이 실행된 시간의 대략적인 값을 리턴합니다. 시간을 사용할 수 없는 경우 값 .1이 반환됩니다. |
5 | char * asctime ( const struct tm * time ); 다음 형식으로 변환된 시간이 가리키는 구조에 저장된 정보가 포함된 문자열에 대한 포인터를 반환합니다. 일 월 날짜 시:분:초 연도\n\0 |
6 | 구조체 tm *gmtime(const time_t *time); 이것은 tm 구조의 형태로 시간에 대한 포인터를 반환합니다. 시간은 기본적으로 그리니치 표준시(GMT)인 협정 세계시(UTC)로 표시됩니다. |
7 | time_t mktime(구조체 tm *시간); 이것은 time이 가리키는 구조에서 찾은 시간에 해당하는 달력 시간을 반환합니다. |
8 | 이중 difftime( time_t time2, time_t time1 ); 이 함수는 time1과 time2의 차이를 초 단위로 계산합니다. |
9 | size_t strftime(); 이 기능은 날짜와 시간을 특정 형식으로 포맷하는 데 사용할 수 있습니다. |
현재 시스템 날짜 및 시간을 현지 시간 또는 UTC(협정 세계시)로 검색한다고 가정합니다. 다음은 동일한 것을 달성하는 예입니다 -
라이브 데모#include <iostream> #include <ctime> using namespace std; int main() { // current date/time based on current system time_t now = time(0); // convert now to string form char* dt = ctime(&now); cout << "The local date and time is: " << dt << endl; // convert now to tm struct for UTC tm *gmtm = gmtime(&now); dt = asctime(gmtm); cout << "The UTC date and time is:"<< dt << endl; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
The local date and time is: Sat Jan 8 20:07:41 2011 The UTC date and time is:Sun Jan 9 03:07:41 2011
tm 구조는 C 또는 C++에서 날짜와 시간으로 작업할 때 매우 중요합니다. 이 구조는 위에서 언급한 C 구조의 형태로 날짜와 시간을 보유합니다. 대부분의 관련 기능은 tm 구조를 사용합니다. 다음은 다양한 날짜 및 시간 관련 함수와 tm 구조를 사용한 예입니다. -
이 장에서 구조체를 사용하는 동안 나는 당신이 C 구조체에 대한 기본적인 이해와 화살표 -> 연산자를 사용하여 구조체 멤버에 접근하는 방법을 알고 있다고 가정합니다.
라이브 데모#include <iostream> #include <ctime> using namespace std; int main() { // current date/time based on current system time_t now = time(0); cout << "Number of sec since January 1,1970 is:: " << now << endl; tm *ltm = localtime(&now); // print various components of tm structure. cout << "Year:" << 1900 + ltm->tm_year<<endl; cout << "Month: "<< 1 + ltm->tm_mon<< endl; cout << "Day: "<< ltm->tm_mday << endl; cout << "Time: "<< 5+ltm->tm_hour << ":"; cout << 30+ltm->tm_min << ":"; cout << ltm->tm_sec << endl; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
Number of sec since January 1,1970 is:: 1588485717 Year:2020 Month: 5 Day: 3 Time: 11:31:57
C 언어
구성품 및 소모품 Arduino UNO × 1 DHT11 온도 및 습도 센서(4핀) × 1 Maxim 통합 DS3231 × 1 저항 10k 옴 × 1 Adafruit 128x64 OLED 그래픽 디스플레이 × 1 브레드보드(일반) × 1 점퍼 와이어(일반) × 15 이 프로젝트 정보 온도와 습도와 함께 시간, 날짜를 표시할 수 있는 인터페이스를 만들고 싶었던 적이 있습니까? 생각보다
구성품 및 소모품 Arduino UNO × 1 Adafruit Standard LCD - 파란색 바탕에 16x2 흰색 × 1 LCD용 I2C 모듈 × 1 실시간 시계(RTC) × 1 SparkFun 푸시버튼 스위치 12mm × 3 저항 10k 옴 × 3 점퍼 와이어(일반) × 1 이 프로젝트 정보 소개 이 시계는 많은 내 프로젝트의 기초입니다. 저는 2012년에 튜토리얼을