티스토리 뷰

C,C++

C/C++ : 현재 날짜 구하기

Andrew Shin 2016. 6. 9. 09:57

C/C++로 현재 날짜를 구하는 방법은 아래와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#pragma warning(disable : 4996)
#include <time.h> 
#include<windows.h> 
#include<stdio.h> 
 
struct date {
    unsigned int da_year;
    unsigned int da_mon;
    unsigned int da_day;
};
 
void getdate(struct date *);
 
void main()
{
    struct date stdate;
    getdate(&stdate);
    printf("%u 년 %u 월 %u일\n", stdate.da_year, stdate.da_mon, stdate.da_day);
}
 
void getdate(struct date *p) // 원본 데이터를 변환할수 있도록 Call by pointer 기법 사용 
{
    char temp[128];
    char *cp, syear[5= "20";
    _strdate(temp); // temp char배열 안에 08/10/04(월/일/년)순으로 년월일이 문자열 상태로 저장 
    printf("월/일/년 : %s\n", temp);
 
    cp = strtok(temp, "/"); // temp배열의 첫번째 '/'까지 문자열를 끊어내어 cp에게 "08" 문자열의 시작주소를 리턴 
 
    p->da_mon = atoi(cp); // 끊어낸 "08"문자열을 정수형 데이터 8로 변환하여 p->da_mon에 저장 
 
    cp = strtok(NULL, "/"); // temp배열의 두번째 '/'까지 문자열를 끊어내어 cp에게 "10" 문자열의 시작주소를 리턴 
 
    p->da_day = atoi(cp); // 끊어낸 "10"문자열을 정수형 데이터 10로 변환하여 p->da_day에 저장 
 
    cp = strtok(NULL, "/"); // temp배열의 세번째 '/'까지 문자열를 끊어내려하나 '/'은 나타나지 않고 문자열이 
                            // 끝나게 되므로 남은 문자열 전체를 리턴한다 즉, cp에게 "04" 문자열의 시작주소가 리턴한다. 
 
    strcat(syear, cp); // syear내의 "20"과 cp가 가리키는 "04"을 붙여서 "2004" 문자열을 syear변수에 저장 
 
    p->da_year = atoi(syear); // syear내의 "2004" 문자열을 정수형 데이터 2004로 변환하여 p->da_year에 저장 
}
cs

출력결과



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함