시작 프로그램이란?


시작 프로그램이란 윈도우가 시작될 때 자동으로 실행되는 프로그램 입니다. 즉, 윈도우가 시작될 때마다 매번 자동으로 시작되는 프로그램들의 집합을 의미하는 것이죠. 시작 프로그램은 시작프로그램 폴더, 또는 관련 레지스트리에 원하는 프로그램(바로 가기, 실행 파일, 배치 파일 등)을 등록하는 것으로 지정할 수 있습니다.


참고로 이러한 시작 프로그램은 사용자 계정별로 따로 적용되는 개별 사용자용 시작 프로그램과 모든 사용자에게 공통으로 적용되는 전체 사용자용 시작 프로그램 두 가지 종류로 나누어집니다.

개별 사용자용 시작 프로그램 - 해당 사용자 계정으로 로그온될 때만 실행됨.
전체 사용자용 시작 프로그램 - 모든 사용자 계정에서 공통으로 실행됨.


또한 시작 프로그램은 윈도우 시작시마다 항상 실행되는 지속용 시작 프로그램과, 다음 번 로그온 때 한 번만 실행되고 이후 제거되는 일회용 시작 프로그램으로 다시 나누어지죠.

지속용 시작 프로그램 - 매번 윈도우의 지정한 사용자 계정으로 로그온될 때마다 자동으로 실행됨.
일회용 시작 프로그램 - 다음번 윈도우의 지정한 사용자 계정으로 로그온될 때 한 번만 실행되고 이후 제거됨.



즉, 시작 프로그램에는 개별-지속, 개별-일회, 전체-지속, 전체-일회의 총 네 가지 형태의 유형이 존재한다고 생각하시면 됩니다. 그리고 마지막으로 윈도우에서 시작 프로그램을 등록하는 방법은 크게 아래의 두 가지 방법이 있습니다.

1. 시작 프로그램 폴더에 등록.
2. 레지스트리의 Run 과 RunOnce 에 등록.








시작프로그램 폴더


시작프로그램 폴더에 등록된 시작 프로그램들의 모습



특정 프로그램, 바로 가기, 배치 파일 등을 시작프로그램 폴더에 위치시키면 매번 윈도우로 로그온될 때마다 시작프로그램 폴더에 위치한 프로그램들이 자동으로 실행되게 됩니다. 즉, 시작프로그램 폴더는 지속형 시작 프로그램들을 위치시키는 공간이라고 할 수 있습니다. 이러한 시작프로그램 폴더는 개별 사용자용과 전체 사용자용, 두 가지 폴더(경로)로 나누어져 있고, 용도에 맞춰 두 폴더 중 원하는 곳에 프로그램(바로 가기, 실행 파일, 배치 파일)을 위치시키면 됩니다.


먼저 사용자 계정별로 달리 적용할 수 있는 개별 사용자용 시작 프로그램 폴더의 경로는 아래와 같습니다.

%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup





다음으로 모든 사용자 계정에 함께 적용되는 전체 사용자용 시작 프로그램 폴더의 경로는 아래와 같습니다.

%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup




윈도우 7 이하 사용자들은 경로는 물론 스크린 샷과 같은 방법으로 간단하게 시작프로그램 폴더에 접근할 수 있으며, 윈도우 8 사용자들도 비슷하게 시작 타일에서 접근할 수 있지만 그냥 경로를 긁어 파일 탐색기를 통해 접근하는 게 더 편하실 겁니다.






시작 프로그램 레지스트리


레지스트리에 등록된 시작 프로그램들의 모습 [개별-지속]



먼저 시작 프로그램에 해당하는 레지스트리 키는 총 네 개로 이루어져 있으며 이들은 아래와 같습니다.

개별 사용자 지속용 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
개별 사용자 일회용 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

전체 사용자 지속용 : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
전체 사용자 일회용 : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce


* 전체 사용자 - HKEY_LOCAL_MACHINE, 개별 사용자 - HKEY_CURRENT_USER
* 일반 - Run, 일회성 - RunOnce



이러한 레지스트리는 Regedit 를 통해 편집할 수 있습니다. 레지스트리를 통해 시작 프로그램을 등록하는 방법은 원하는 키로 이동한 후 하위에 문자열 값(REG_SZ) 을 생성하고 해당 문자열의 값 데이터로 원하는 프로그램(기능)의 실행 명령을 등록하면 됩니다. 참고로 값 이름은 적절히 자신이 원하는대로 알아먹을 수 있게만 지정하면 됩니다. [레지스트리 편집에 관해선 자세하게 설명하지 않겠습니다.]

해당 키에 원하는 프로그램의 실행 명령을 문자열 값(REG_SZ)으로 등록.



만약에 이것을 명령형 유틸인 Reg 명령을 통해 작업한다면 명령 프롬프트에서 아래와 같은 식으로 작업할 수 있습니다. 해당 명령은 위의 스크린 샷과 동일한 작업을 담고 있으니 옵션들의 뜻은 알아서 유추하실 수 있을거라 믿습니다.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Test" /t REG_SZ /d "F:\Temp\Test.cmd" /f








시작 프로그램에 배치 파일을 등록할 때 팁


시작 프로그램에 배치 파일을 등록하면 윈도우를 시작하고 사용자 계정으로 로그온된 후 순간적이지만 명령 프롬프트 창이 떴다가 사라지게 됩니다. 또는 배치 파일의 작업이 오래 걸리는 것이라면 배치 파일이 모두 완료될 때까지 명령 프롬프트가 노출되죠. 이렇게 배치 파일 창이 노출되는 것이 마음에 들지 않는 사용자도 있으리라 생각합니다.

그럴 땐 시작 프로그램에 배치 파일을 직접 등록하는 것이 아닌, 배치 파일을 실행하되 실행되는 명령 프롬프트 창을 숨겨주는 VB 스크립트를 만들고, 해당 VB 스크립트를 시작 프로그램에 등록하는 방법을 사용하면 됩니다. 즉, 아래와 같은 VB 스크립트를 만들어 시작 프로그램으로 등록하면 되는 것이죠. 이 때 빨간색으로 표시한 부분에 원하는 배치 파일을 넣으시면 됩니다.

Example.vbs
Set WinScriptHost = CreateObject( "WScript.shell" )
WinScriptHost.Run Chr(34) & "D:\VARS\Config\Change.cmd" & Chr(34), 0 
Set WinScriptHost = Nothing



원래 윈도우 7 을 기준으로 포스팅한 내용이지만 다른 윈도우들도 이와 다르지 않기 때문에 전체 윈도우용 설명으로 수정한 후 재포스팅합니다. 시작 프로그램에 대해서는 크게 더 이야기할 게 없네요. 이쯤에서 줄이도록 하겠습니다. ^^

 


원본링크 : http://cappleblog.co.kr/289

//일자를 추출한다.
function DateOf(const AValue: TDateTime): TDateTime; 

//시간을 추출한다.
function TimeOf(const AValue: TDateTime): TDateTime;

//평년,윤년을 구분하다.
function IsInLeapYear(const AValue: TDateTime): Boolean;

//오전,오후를 구분한다.
function IsPM(const AValue: TDateTime): Boolean;

//Word형의 년,월,일 파라메타의 유효성을 체크한다.
function IsValidDate(const AYear, AMonth, ADay: Word): Boolean;

//Word형의 시,분,초,밀리초 파라메타의 유효성을 체크한다.
function IsValidTime(const AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;

//Word형의 년,월,일,시,분,초,밀리초 파라메타의 유효성을 체크한다.
function IsValidDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;

//ex) IsValidDateDay(2006,45) : 2006년의 45번째날이 유효한지를 체크한다.
function IsValidDateDay(const AYear, ADayOfYear: Word): Boolean;

//ex) IsValidDateWeek(2006,42) : 2006년의 42주차가 유효한지를 체크한다.
function IsValidDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): Boolean;

//년,월,월의주차,요일 이 유효한지를 체크한다.
//ex) IsValidDateMonthWeek(2006,2,1,2) : 2006년 2월의 1주차의 화요일이 유효한지를 체크한다.
function IsValidDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): Boolean;

//ex) WeeksInYear(Today) : 오늘이 년의 몇주차인지 리턴한다.
function WeeksInYear(const AValue: TDateTime): Word; 
function WeeksInAYear(const AYear: Word): Word; 

//ex) DaysInYear(Today) : 오늘이 년의 몇일째인지 리턴한다. 
function DaysInYear(const AValue: TDateTime): Word;
function DaysInAYear(const AYear: Word): Word;

//ex) DaysInMonth(Today) : 오늘이 월의 몇일째인지 리턴한다.
function DaysInMonth(const AValue: TDateTime): Word;
function DaysInAMonth(const AYear, AMonth: Word): Word;

//오늘-
function Today: TDateTime;

//어제-
function Yesterday: TDateTime;

//내일-
function Tomorrow: TDateTime;

//AValue의 값이 오늘이면 True를 리턴한다.
function IsToday(const AValue: TDateTime): Boolean;

//AValue, ABasis 같은날이면 True를 리턴한다.
function IsSameDay(const AValue, ABasis: TDateTime): Boolean;


//년을 추출한다.
function YearOf(const AValue: TDateTime): Word;

//월을 추출한다.
function MonthOf(const AValue: TDateTime): Word;

//년의 몇주차인지를 추출한다.
function WeekOf(const AValue: TDateTime): Word; 

//일자만 추출한다.
//ex) DayOf(StrToDate('2006-06-27')) : 27을 리턴한다.
function DayOf(const AValue: TDateTime): Word;

//시간을 추출한다(24시간단위)
function HourOf(const AValue: TDateTime): Word;

//분을 추출한다.
function MinuteOf(const AValue: TDateTime): Word;

//초를 추출한다.
function SecondOf(const AValue: TDateTime): Word;

//밀리초를 추출한다.
function MilliSecondOf(const AValue: TDateTime): Word;

//년도의 시작일
function StartOfTheYear(const AValue: TDateTime): TDateTime;
function StartOfAYear(const AYear: Word): TDateTime;

//년도의 마지막일
function EndOfTheYear(const AValue: TDateTime): TDateTime;
function EndOfAYear(const AYear: Word): TDateTime;

//월의 시작일
function StartOfTheMonth(const AValue: TDateTime): TDateTime;
function StartOfAMonth(const AYear, AMonth: Word): TDateTime;

//월의 마지막일
function EndOfTheMonth(const AValue: TDateTime): TDateTime;
function EndOfAMonth(const AYear, AMonth: Word): TDateTime;

//주의 시작일
function StartOfTheWeek(const AValue: TDateTime): TDateTime; 

//주의 시작일(기준요일을 정할수 있다.)
//1:월요일, 2:화요일, 3:수요일, 4:목요일 ,5:금요일 , 6:토요일 ,7:일요일
function StartOfAWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 1): TDateTime;

//주의 마지막일
function EndOfTheWeek(const AValue: TDateTime): TDateTime; 

//주의 마지막일(기준요일을 정할수 있다.)
//1:월요일, 2:화요일, 3:수요일, 4:목요일 ,5:금요일 , 6:토요일 ,7:일요일
function EndOfAWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 7): TDateTime;



function StartOfTheDay(const AValue: TDateTime): TDateTime;
function StartOfADay(const AYear, AMonth, ADay: Word): TDateTime; overload;
function StartOfADay(const AYear, ADayOfYear: Word): TDateTime; overload;
function EndOfTheDay(const AValue: TDateTime): TDateTime;
function EndOfADay(const AYear, AMonth, ADay: Word): TDateTime; overload;
function EndOfADay(const AYear, ADayOfYear: Word): TDateTime; overload;


//ex) MonthOfTheYear(Today) : 오늘일자를 Word형으로 리턴한다.
function MonthOfTheYear(const AValue: TDateTime): Word;

//ex) WeekOfTheYear(Today) : 오늘일자가 몇주차인지를 Word형으로 리턴한다.
function WeekOfTheYear(const AValue: TDateTime): Word; overload; 
function WeekOfTheYear(const AValue: TDateTime; var AYear: Word): Word; overload;

//ex) DayOfTheYear(Today) : 오늘일자가 올해의 몇일째인지를 Word형으로 리턴한다.
function DayOfTheYear(const AValue: TDateTime): Word;

//년의 시작일부터 해당일자까지의 시간을 모두 더해서 Word형으로 리턴한다.
function HourOfTheYear(const AValue: TDateTime): Word;

//년의 시작일부터 해당일자까지의 분을 모두 더해서 Word형으로 리턴한다.
function MinuteOfTheYear(const AValue: TDateTime): LongWord;

//년의 시작일부터 해당일자까지의 초을 모두 더해서 Word형으로 리턴한다.
function SecondOfTheYear(const AValue: TDateTime): LongWord;

//년의 시작일부터 해당일자까지의 밀리초을 모두 더해서 Word형으로 리턴한다.
function MilliSecondOfTheYear(const AValue: TDateTime): Int64;

//이달의 몇번째주 인지를 리턴한다.
function WeekOfTheMonth(const AValue: TDateTime): Word; overload; 
function WeekOfTheMonth(const AValue: TDateTime; var AYear, AMonth: Word): Word; overload;

//이달의 몇일째인지를 리턴한다.
function DayOfTheMonth(const AValue: TDateTime): Word;

//월의 시작일부터 해당일자까지의 시간의 합을 리턴한다.
function HourOfTheMonth(const AValue: TDateTime): Word;

//월의 시작일부터 해당일자까지의 분의 합을 리턴한다.
function MinuteOfTheMonth(const AValue: TDateTime): Word;

//월의 시작일부터 해당일자까지의 초의 합을 리턴한다.
function SecondOfTheMonth(const AValue: TDateTime): LongWord;

//월의 시작일부터 해당일자까지의 밀리초의 합을 리턴한다.
function MilliSecondOfTheMonth(const AValue: TDateTime): LongWord;

//해당일의 요일을 리턴한다.
//1:월요일, 2:화요일, 3:수요일, 4:목요일 ,5:금요일 , 6:토요일 ,7:일요일
function DayOfTheWeek(const AValue: TDateTime): Word;

//AValue날짜의 주의 시작일부터 AValue날짜까지의 시간의 합을 계산한다.
function HourOfTheWeek(const AValue: TDateTime): Word; 

//AValue날짜의 주의 시작일부터 AValue날짜까지의 분의 합을 계산한다.
function MinuteOfTheWeek(const AValue: TDateTime): Word; 

//AValue날짜의 주의 시작일부터 AValue날짜까지의 초의 합을 계산한다.
function SecondOfTheWeek(const AValue: TDateTime): LongWord; 

//AValue날짜의 주의 시작일부터 AValue날짜까지의 밀리초의 합을 계산한다.
function MilliSecondOfTheWeek(const AValue: TDateTime): LongWord; 

//ex) HourOfTheDay(Time) : 24시간 단위로 Time까지의 시간의 합을 계산한다.
function HourOfTheDay(const AValue: TDateTime): Word;

//ex) MinuteOfTheDay(Time) : 24시간 단위로 Time까지의 분의 합을 계산한다.
function MinuteOfTheDay(const AValue: TDateTime): Word;

//ex) SecondOfTheDay(Time) : 24시간 단위로 Time까지의 초의 합을 계산한다.
function SecondOfTheDay(const AValue: TDateTime): LongWord;

//ex) MilliSecondOfTheDay(Time) : 24시간 단위로 Time까지의 밀리초의 합을 계산한다.
function MilliSecondOfTheDay(const AValue: TDateTime): LongWord;

//ex) MinuteOfTheHour(13:28:43:345) : 시간을 기준으로 분의 합을계산한다.
function MinuteOfTheHour(const AValue: TDateTime): Word;

//ex) SecondOfTheHour(13:28:43:345) : 시간을 기준으로 초의 합을계산한다.
function SecondOfTheHour(const AValue: TDateTime): Word;

//ex) MilliSecondOfTheHour(13:28:43:345) : 시간을 기준으로 밀리초의 합을계산한다.
function MilliSecondOfTheHour(const AValue: TDateTime): LongWord;

//ex) SecondOfTheMinute(13:28:43:345) : 분을 기준으로 초의 합을 계산한다.
function SecondOfTheMinute(const AValue: TDateTime): Word;

//ex) SecondOfTheMinute(13:28:43:345) : 초을 기준으로 밀리초의 합을 계산한다.
function MilliSecondOfTheMinute(const AValue: TDateTime): LongWord;
function MilliSecondOfTheSecond(const AValue: TDateTime): Word;

{ Range checking functions }

function WithinPastYears(const ANow, AThen: TDateTime;
const AYears: Integer): Boolean;
function WithinPastMonths(const ANow, AThen: TDateTime;
const AMonths: Integer): Boolean;
function WithinPastWeeks(const ANow, AThen: TDateTime;
const AWeeks: Integer): Boolean;
function WithinPastDays(const ANow, AThen: TDateTime;
const ADays: Integer): Boolean;
function WithinPastHours(const ANow, AThen: TDateTime;
const AHours: Int64): Boolean;
function WithinPastMinutes(const ANow, AThen: TDateTime;
const AMinutes: Int64): Boolean;
function WithinPastSeconds(const ANow, AThen: TDateTime;
const ASeconds: Int64): Boolean;
function WithinPastMilliSeconds(const ANow, AThen: TDateTime;
const AMilliSeconds: Int64): Boolean;

{ Range query functions }

//두날짜(시간) 사이에 년수를 리턴한다.
function YearsBetween(const ANow, AThen: TDateTime): Integer;

//두날짜(시간) 사이의 월수를 리턴한다.
function MonthsBetween(const ANow, AThen: TDateTime): Integer;

//두날짜(시간) 사이의 주수를 리턴한다.
function WeeksBetween(const ANow, AThen: TDateTime): Integer;

//두날짜(시간) 사이의 일수를 리턴한다.
function DaysBetween(const ANow, AThen: TDateTime): Integer;

//두날짜(시간) 사이의 시간을 리턴한다.
function HoursBetween(const ANow, AThen: TDateTime): Int64;

//두날자(시간) 사이의 분을 리턴한다.
function MinutesBetween(const ANow, AThen: TDateTime): Int64;

//두날짜(시간) 사이의 초를 리턴한다.
function SecondsBetween(const ANow, AThen: TDateTime): Int64;

//두날짜(시간) 사이의 밀리초를 리턴한다.
function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64;


//두날짜(시간) 사이를 Double형으로 리턴한다.
function YearSpan(const ANow, AThen: TDateTime): Double;
function MonthSpan(const ANow, AThen: TDateTime): Double;
function WeekSpan(const ANow, AThen: TDateTime): Double;
function DaySpan(const ANow, AThen: TDateTime): Double;
function HourSpan(const ANow, AThen: TDateTime): Double;
function MinuteSpan(const ANow, AThen: TDateTime): Double;
function SecondSpan(const ANow, AThen: TDateTime): Double;
function MilliSecondSpan(const ANow, AThen: TDateTime): Double;


//AValue일자에서 ANumberOfYears만큼의 년도를 증가한다.
function IncYear(const AValue: TDateTime; const ANumberOfYears: Integer = 1): TDateTime;

//AValue일자에서 ANumberOfWeeks만큼의 주를 증가한다.
function IncWeek(const AValue: TDateTime; const ANumberOfWeeks: Integer = 1): TDateTime;

//AValue일자에서 ANumberOfDays만큼의 일를 증가한다.
function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime;

//AValue일자(시간)에서 ANumberOfHours만큼의 시간를 증가한다.
function IncHour(const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime;

//AValue일자(시간)에서 ANumberOfMinutes만큼의 분를 증가한다.
function IncMinute(const AValue: TDateTime; const ANumberOfMinutes: Int64 = 1): TDateTime;

//AValue일자(시간)에서 ANumberOfSeconds만큼의 초를 증가한다.
function IncSecond(const AValue: TDateTime; const ANumberOfSeconds: Int64 = 1): TDateTime;

//AValue일자(시간)에서 ANumberOfMilliSeconds만큼의 밀리초를 증가한다.
function IncMilliSecond(const AValue: TDateTime; const ANumberOfMilliSeconds: Int64 = 1): TDateTime;

//년,월,일,시,분,초,밀리초 ---> 날짜(시간)형으로 리턴한다.
function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;

//날짜(시간)형 ---> 년,월,일,시,분,초,밀리초 Word형으로 리턴한다.
procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word);

//ex) EncodeDateWeek(2006,25,2) : 2006년 25주차의 첫번째 화요일의 날자를 리턴한다.
function EncodeDateWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 1): TDateTime;

//ex) DecodeDateWeek(Today) : 오늘은 몇년 몇째주의 무슨요일인지를 리턴한다.
procedure DecodeDateWeek(const AValue: TDateTime; out AYear, AWeekOfYear, ADayOfWeek: Word);

//AYear년의 ADayOfYear번째일이 며칠인지 리턴한다.
function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime;

//AValue일자가 몇년의 몇일째인지를 구한다.
procedure DecodeDateDay(const AValue: TDateTime; out AYear, ADayOfYear: Word);

//년,월,월의몇주차,화요일 의 날짜를 리턴한다.
function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): TDateTime;

//AValue의 년,월,월의몇주차, 요일 구한다.
procedure DecodeDateMonthWeek(const AValue: TDateTime; out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word);

//년,월,일,시,분,초,밀리초의 유효성을 체크하고 날짜를 구한다.
function TryEncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word; out AValue: TDateTime): Boolean;

//AYear년의 AWeekOfYear주에 ADayOfWeek요일에 유효성을 체크하고 날짜를 리턴한다.
function TryEncodeDateWeek(const AYear, AWeekOfYear: Word; out AValue: TDateTime; const ADayOfWeek: Word = 1): Boolean;

//AYear년의 ADayOfYear번째날에 유효성을 체크하고 날짜를 구한다.
function TryEncodeDateDay(const AYear, ADayOfYear: Word; out AValue: TDateTime): Boolean;

//AYear(년) AMonth(월) AWeekOfMonth(월의주차) ADayOfWeek(요일) 유효성을 체크하고 날짜를 구한다.
function TryEncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word; var AValue: TDateTime): Boolean;


function RecodeYear(const AValue: TDateTime; const AYear: Word): TDateTime;
function RecodeMonth(const AValue: TDateTime; const AMonth: Word): TDateTime;
function RecodeDay(const AValue: TDateTime; const ADay: Word): TDateTime;
function RecodeHour(const AValue: TDateTime; const AHour: Word): TDateTime;
function RecodeMinute(const AValue: TDateTime; const AMinute: Word): TDateTime;
function RecodeSecond(const AValue: TDateTime; const ASecond: Word): TDateTime;
function RecodeMilliSecond(const AValue: TDateTime; const AMilliSecond: Word): TDateTime;
function RecodeDate(const AValue: TDateTime; const AYear, AMonth, ADay: Word): TDateTime;
function RecodeTime(const AValue: TDateTime; const AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
function RecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
function TryRecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word; out AResult: TDateTime): Boolean;

//A.날짜(시간) B.날짜(시간) 을 비교한다. A=B(0) , A>B(1) , Afunction CompareDateTime(const A, B: TDateTime): TValueRelationship;
function CompareDate(const A, B: TDateTime): TValueRelationship;
function CompareTime(const A, B: TDateTime): TValueRelationship;


//A.날짜(시간) B.날짜(시간) 을 비교한다
function SameDateTime(const A, B: TDateTime): Boolean;
function SameDate(const A, B: TDateTime): Boolean;
function SameTime(const A, B: TDateTime): Boolean;

//오늘이 이달의 몇번째주인지 리턴한다.
function NthDayOfWeek(const AValue: TDateTime): Word;

//AValue날이 몇년,몇월,월의몇번째주,무슨요일 인지를 구한다.
procedure DecodeDayOfWeekInMonth(const AValue: TDateTime; out AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word);

//AYear(년), AMonth(월), ANthDayOfWeek(월의몇번째주), ADayOfWeek(요일) ----> 해당일자를 리턴한다.
function EncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word): TDateTime;

//AYear(년), AMonth(월), ANthDayOfWeek(월의몇번째주), ADayOfWeek(요일) 의 유효성을 체크하고 날짜를 구한다.
function TryEncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word; out AValue: TDateTime): Boolean;


procedure InvalidDateTimeError(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word; const ABaseDate: TDateTime = 0);
procedure InvalidDateWeekError(const AYear, AWeekOfYear, ADayOfWeek: Word);
procedure InvalidDateDayError(const AYear, ADayOfYear: Word);
procedure InvalidDateMonthWeekError(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word);
procedure InvalidDayOfWeekInMonthError(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word);


//날짜를 Double형으로 리턴한다.
//0001년01월01일 ---> 1721425 
function DateTimeToJulianDate(const AValue: TDateTime): Double;

//Double형을 날짜로 리턴한다.
//1721425 ---> 0001년01월01일
function JulianDateToDateTime(const AValue: Double): TDateTime;

//AValue의 유효성을 체크하고 날짜를 리턴한다.
function TryJulianDateToDateTime(const AValue: Double; out ADateTime: TDateTime): Boolean;

//날짜를 Double형으로 리턴한다.
//0001년01월01일 ---> ( -678575 )
function DateTimeToModifiedJulianDate(const AValue: TDateTime): Double;

//Double형을 날짜로 리턴한다.
//( -678575 ) ---> 0001년01월01일
function ModifiedJulianDateToDateTime(const AValue: Double): TDateTime;

//AValue의 유효성을 체크하고 날짜를 리턴한다.
function TryModifiedJulianDateToDateTime(const AValue: Double; out ADateTime: TDateTime): Boolean;


function DateTimeToUnix(const AValue: TDateTime): Int64;
function UnixToDateTime(const AValue: Int64): TDateTime;




원본 링크 : http://www.delmadang.com/community/bbs_view.asp?bbsNo=21&bbsCat=0&indx=209893&page=66

AED아랍에미리트 디르햄
ARS아르헨티나 페소
AUD오스트레일리아 달러
BGN불가리아 레브
BND브루나이 달러
BOB볼리비아 볼리비아노
BRL브라질 레알
CAD캐나다 달러
CHF스위스 프랑
CLP칠레 페소
CNY중국 위안 인민폐
COP콜롬비아 페소
CZK체코 코루나
DKK덴마크 크로네
EGP이집트 파운드
EUR유로
FJD피지 달러
GBP영국 파운드
HKD홍콩 달러
HRK크로아티아 쿠나
HUF헝가리 포린트
IDR인도네시아 루피아
ILS이스라엘 셰켈
INR인도 루피
JPY일본 엔
KES케냐 실링
KRW한국 원
LTL리투아니아 리타스
MAD모로코 디람
MXN멕시코 페소
MYR말레이시아 링기트
NOK노르웨이 크로네
NZD뉴질랜드 달러
PEN페루 누에보솔
PHP필리핀 페소
PKR파키스탄 루피
PLN폴란드 즐로티
RON루마니아 레우
RSD세르비아 디나르
RUB러시아 루블
SAR사우디 리얄
SEK스웨덴 크로나
SGD싱가포르 달러
THB태국 바트
TRY터키 리라
TWD새 타이완 달러
UAH우크라이나 그리브나
USD미국 달러
VEF베네수엘라 볼리바르 푸에르테
VND베트남 동
ZAR남아프리카 공화국 랜드


원본 링크 : https://developers.google.com/adsense/host/appendix/currencies

+ Recent posts