
윈도우에서 파일의 만든날짜, 수정한 날짜, 액세스한 날짜를 원하는 날짜로 수정함.
DayOfWeek는 입력하지 않아도 Day에 따라서 자동으로 변동됨.
VS 2008 SP1에서 만듬.
근데 왜 만들었지?
GetFileTime, SetFileTime, FileTimeToSystemTime, SystemTimeToFileTime

| #,###;[빨강](#,###);0.00;@"낭자" | |
| 양수;음수;0;텍스트 세미콜론으로 동시에 4가지 표시 형식을 지정 가능 |
|
| 서식코드 | 의미 |
| # | 유효 자리수 표시, 유효하지 않은 경우 미표시 |
| 0 | 유효하지 않은 경우 0으로 표시 |
| ? | 소수점 앞이나 뒤에 있는 유효하지 않은 0 대신 공백을 추가하여 소수점을 맞춤 |
| , | 천단위 구분기호 |
| [] | 조건이나 색을 지정 |
| m | m:1~12,
mm:01~12 월 의미 mmm은 Jan에서 Dec, mmmm은 January~December로 월 표시 |
| d | d:1~31,
dd:01~31 mmm은 Sun~Sat, dddd는 Sunday~Saturday로 요일 표시 |
| yy | yy는 2자리로, yyyy는 4자리 연도 표시 |
그리고 두 COleDateTime 객체간의 차이를 구할 때는
----------------------------------------------------------------------------------------
COleDateTime ATime(2007, 4, 26, 17, 20, 30);
COleDateTime BTime(2007, 4, 26, 18, 20, 50);
COleDateTimeSpan C = BTime - ATime;
C.GetTotalDays() - 차이나는 총 날짜
C.GetTotalHours() - 차이나는 총 시간
C.GetTotalMinutes() - 차이나는 총 분
C.GetTotalSeconds() - 차이나는 총 초
----------------------------------------------------------------------------------------
객채를 생성할 때에는 아래와 같이 초기화하면서 사용 가능함
가장 일반적으로는 COleDateTime( nYear, nMonth, nDay, nHour, nMin, nSec ) 이게 많이 쓰이겠지..
----------------------------------------------------------------------------------------
COleDateTime( ) Constructs a COleDateTime object initialized to 0 (midnight, 30 December 1899).
COleDateTime( dateSrc ) Constructs a COleDateTime object from an existing COleDateTime object.
COleDateTime( varSrc ) Constructs a COleDateTime object. Attempts to convert a VARIANT structure or COleVariant object to a date/time (VT_DATE) value. If this conversion is successful, the converted value is copied into the new COleDateTime object. If it is not, the value of the COleDateTime object is set to 0 (midnight, 30 December 1899) and its status to invalid.
COleDateTime( dtSrc ) Constructs a COleDateTime object from a DATE value.
COleDateTime( timeSrc ) Constructs a COleDateTime object from a time_t value.
COleDateTime( systimeSrc ) Constructs a COleDateTime object from a SYSTEMTIME value.
COleDateTime( filetimeSrc ) Constructs a COleDateTime object from a FILETIME value. . Note that FILETIME uses Universal Coordinated Time (UTC), so if you pass a local time in the structure, your results will be incorrect. See File Times in the Platform SDK for more information.
COleDateTime( nYear, nMonth, nDay, nHour, nMin, nSec ) Constructs a COleDateTime object from the specified numerical values.
COleDateTime( wDosDate, wDosTime ) Constructs a COleDateTime object from the specified MS-DOS date and time values.
----------------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>test007/ 경로에 index.html 파일을 만들고
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
<servlet>이 곳과 아래 내용
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>위와 같이하고 xml 설정 파일을 reload하기 위해 톰캣을 재시작한다.
<Context docBase="C:\test008"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
<Context path="/test008" docBase="D:\test008"/>를 삽입한다.
strcpy 는 문자열 복사를 위한 함수로서
길이를 지정안하는 대신 source 문자열이 반드시 '\0' 으로 끝나야합니다.
source 에서 '\0'을 만나면 복사를 종료합니다
('\0' 까지 복사됩니다)
이에 반하여 memcpy는 형에 관계없이 임의의 영역을 지정한 byte 수만큼 복사하는
기능을 수행합니다
char dstS[64], srcS[]="string copy";
여기서 srcS를 dstS로 복사하려면
strcpy 로는
strcpy(dstS, srcS);
이렇게만 하면 되지만
memcpy로 복사하려면
memcpy(dstS, srcS, strlen(srcS)+1);
'\0' 까지 처리하기위해 복사할 size를 strlen(srcS)+1 로 지정해 줘야합니다
둘다 메모리 복사란 점에서는 같은 역할을 하지만
문자값을 비교하여 종료하느냐, byte 수를 따져 종료하느냐의 차이가 있습니다
용도가 틀리다고 말할 수는 있어도 어떤것이 더 효율적이다라고는 말하기 어렵습니다
memcpy쓸곳에는 memcpy를 쓰고 strcpy를 쓸 곳에는 strcpy를 쓰면 되느거지요
-------------------------------------------------------------------
속도의 차이는 통상 컴파일러 종류와 운영체제에 따라서 가변사항이
있을것으로 생각됩니다.
요즘은 컴파일러가 좋아지고 님께서 구현하실때 이렇게 한다면
실질적인 의미가 없습니다.
strcpy( test_buff , test_buff_2 );
memcpy( test_buff , test_buff_2 , strlen(test_buff_2) );
그런데, 프로그램이라는 것은 언제나 실수를 할 수 있으며
속도와 안정성( 예외처리 )의 갈림길에 서게 됩니다.
가정을 하여 보시기 바랍니다.
1. test_buff_2 에 , 만약 널 문자 종료가 않생길수 있다면 ?
2. test_buff_2 보다 test_buff 가 작다면 ?
이렇게 된다는 가정이 발생한다면 않되겠지만 수많은 코드를 작성할때는
반드시 발생할 수 있으며, 이러한 문제들은 쉽게 디버깅 되지 않거나
예기치 않은 문제를 가져옵니다.
결과적으로 , 비용적으로 만약 strcpy 가 더 빠르다고 하더라도 ,
memcpy 을 추천합니다. 게다가 가정된 오류를 검사하는 루틴을 포함한다고
하더라도 , 그 효율성의 문제는 크게 발생하지 않습니다.
[출처] strcpy()와 memcpy()|작성자 마른하늘
함수_날짜관련함수.c
/*
함수 : 날짜 관련 함수. -> <time.h> (time, localtime, asctime, tm).

2005년 11월 07일
Son Byeong Hun
cidsang@naver.com
*/
#include <stdio.h>
#include <time.h>
void main(void)
{
time_t time1; //time_t형 변수 time1 선언
struct tm * time2; //tm구조체 time2 선언
char *str;
int nowYear, nowMonth, nowDay, nowHour, nowMin, nowSec;
time(&time1); //time함수를 이용해 현재 시간을 가져온다.
time2 = localtime(&time1); //tm 구조체를 이용해 시간을 표현하기 위해 localtime 함수를 사용.
str = ctime(&time1);
printf("현재 시간 : %s\n", asctime(time2));
printf("현재 시간 : %s\n", str);
// 현재 Date 정보 처리
nowYear = time2->tm_year+1900; //구한 Date 정보를 변수에 할당
nowMonth = time2->tm_mon+1;
nowDay = time2->tm_mday;
nowHour = time2->tm_hour;
nowMin = time2->tm_min;
nowSec = time2->tm_sec;
printf("현재는 %d년 %d월 %d일 %d시 %d분 %d초 입니다. \n", nowYear, nowMonth, nowDay, nowHour, nowMin, nowSec);
}

그리고 시간을 나타내는 함수는 보통 time.h 헤더파일에 거의 들어있습니다.
|
time_t time(time_t *timer); 위 두 함수는 시간을 출력해주되 영어로 저장되고 출력후 알아서 줄바꿈을 하기때문에 조금 애용하기엔 불편합니다. YY는 연도, MM은 월, DD는 일 HH 는 시간 MM은 분 SS는 초 단위입니다. 9바이트이상의 문자열 배열 예) char t[9] 이상되는 배열에 함수를 사용하시면 해당시간을 입력시켜주죠
strftime 함수는 시간을 다양한 방식으로 변경하는데 첫번째 인수로 버퍼, 두번째 인수로 버퍼의 길이 세번째 인수로 포맷 방법, 네번째 인수로 tm 구조체를 넣는다. 위에서 사용한 tm구조체를 문자열로 바꾸어주는 함수인데, 전부 영어형식이라 자주 쓰이지는 않습니다. colck_t clock(); 프로그램 실행후 현재시간을 밀리초단위로 알려주는 함수입니다. clock() / CLOCKS_PER_SEC 이럴경우 현재 프로그램 실행후의 경과초가 되는거죠 http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10104&eid=nCzwy7UFoBFtqmwNclLzvdo83jv4XfeK&qb=Y3RpbWUgsLPH4A==&pid=f5/oMsoi5UZssuzi4Hhsss--417707&sid=SJ-oM2rVn0gAAAPBVEc |
문자열 처리 함수는 문자열을 조작하거나 처리하는 기능을 제공한다. 이 함수를 사용하기 위해 <string.h>를 포함(include)하여야 한다. 문자열과 관련된 함수는 아래의 표와 같으며 이들 함수의 변수 str1, str2는 문자형인 포인터 및 문자열 자체를 의 미한다. 문자열 함수들은 문자열을 조작하거나 복사, 연결, 비교, 검출하는 기능을 수행해 주는 함수들이다. 대표적으로 strlen() 함수는 문자 열의 수를 보여주고, strcpy() 함수는 문자열을 복사하며 strcmp() 함수는 두 문자열을 비교한다. 자세한 문자열 처리 함수들의 형식과 기능은 아래 표에서 보여주고 있다.
|
함수명 |
형식 / 기능 |
|
strlen() |
unsigned strlen( const char *str ) |
|
str의 문자열 길이를 반환 | |
|
strcat() |
char *strcat( char *str1, const char *str2 ) |
|
str1의 문자열에 str2의 문자열을 연결 | |
|
strncat() |
char *strncat( char *str1, const char *str2, unsigned c ) |
|
str1의 문자열에 str2 문자열의 선두 c개의 문자를 연결 | |
|
strcmp() |
char *strcmp( char *str1, const char * str2 ) |
|
str1의 문자열과 str2를 서로 부호 없는 비교, | |
|
strncpm() |
char *strncpm( char *str1, const char *str2, unsigned c ) |
|
str1 문자열의 선두 c개의 문자와 str2의 문자열을 비교 | |
|
strcpy() |
char *strcpy( char *str1, const char *str2 ) |
|
str1의 문자열에 str2의 문자열을 복사, str1의 값을 반환함. | |
|
strncpy() |
char *strncpy( char *str1, const char *str2, unsigned c ) |
|
str1의 문자열에 str2 문자열의 선두 c개의 문자를 복사 | |
|
strstr() |
char *strstr( const char *str1, const char *str2 ) |
|
문자열 str2가 문자열 str1에서 처음 일치하는 위치를 알려준다. 만약 문자열이 발견 되면 str1에 있는 그 문 자열의 포인터를 반환한다. 그 외에는 NULL 포인터를 반환한다. | |
|
strerror() |
char *strerror( int num ) |
|
오류번호 num을 받아 해당하는 오류 메시지를 반환 | |
|
strpbrk() |
char *strpbrk( char *str1, const char *str2 ) |
|
지정한 str1의 문자열에서 str2의 문자열에 포함된 어떤 문자를 찾고 위치 포인터를 반환 | |
|
strrchr() |
char *strrchr( const char *str, int c ) |
|
문자열 str에서 c가 마지막으로 나타나는 위치를 알려준다. c가 발견되면 c의 포인터 를 반환한다. 그 외에는 NULL포인터를 반환한다. | |
|
strcspn() |
char *strcspn( char *str, const char *str2 ) |
|
str1의 문자열에서 str2의 문자열에 포함된 문자가 첫 번째 나타날 때 까지의 문자수 | |
|
strspn() |
char *strspn( char *str1, const char str2 ) |
|
str1의 문자열에서 str2의 문자열에 포함되지 않은 문자가 첫 번째 나타날 때까지의 문자수 | |
|
strtok() |
char *strtok( char *str1, const char *str2 ) |
|
일련의 strtok 호출은 문자열 str1을 문자열 str2가 가지고 있는 문자로 구분되는 '토큰'으로 나눈다. 첫 번째 호출은 첫 번째 인수인 str1을 사용하여 두 번째 호출부터는 NULL을 첫 번째 인수로 사용한다. 매 호출마다 현재 토큰의 포인터를 반환한다. 더 이상 토큰이 없으면 NULL을 반환한다 . | |
|
strupr() |
char *strupr( char *str ) |
|
지정한 str의 문자열 중 소문자를 대문자로 변환 |
자세한 설명 및 예제는 www.jjung.net에 있습니다.
[출처] string.h 함수들|작성자 아세트산