|
const로 선언된것은 변경하지 않겠다는 의미 아닌가요?
const로 선언된 변수 m[]에다가 값을 수정하려고 하고 있네요..
그리고 잘은 모르지만 400으로 나누기 하는것을 보니 윤년계산하고 하는것 같은데
VCL의 TDatetime과 DateUitls유닛에 있는 함수를 이용하면 편리합니다.
굳이 함수를 만들 필요가 없을듯 한데요...
그럼..
한울 님이 쓰신 글 :
: 질문에 답변을 달아 주셔서 감사합니다.
: 에러에 대한 부분을 축약하여 올립니다.
:
: 배열을 const로 선언 후 함수 내에서 배열 값을 바꾸려고 할 때 에러가 나는 것 같은데요.
: 어떻게 해야 하나요?
: -------------------------------------------------------
: library MyUDF;
:
: uses
: SysUtils,
: Classes;
:
: {$R *.res}
:
: const
: m : array[0..11] of byte = (31,28,31,30,31,30,31,31,30,31,30,31);
:
: function sol2lun1p(solYear: Word; solMonth: Word; solDay: Word): string; export;
: var
: m0, m1, m2 : Integer;
: i, j : Integer;
: temp : Integer;
: acc_day : LongInt;
: buff_day : LongInt;
: total_day : LongInt;
: lunYear: Word; lunMonth: Word; lunDay: Word; isLeap: Boolean;
: begin
:
: // *************************************
: // 에러발생 *****************************
: // m 이라는 배열을 함수 밖에서 선언했는데 이것이 잘못 인듯 합니다.
: // *************************************
: if ((solYear mod 4=0) and not (solYear mod 100=0)) or (solYear mod 400=0) then
: m[1] := 29
: else
: m[1] := 28;
:
: // *************************************
: // 에러발생 *****************************
: // 캐스팅 에러 인듯 합니다.
: // *************************************
: Result:= IntToStr(lunYear) + IntToStr(lunMonth) + IntToStr(lunDay);
: end;
:
: exports sol2lun1p;
:
: begin
: end.
|