Q&A

  • 에디트 박스값을 월, 일로 변환 문제...
안녕하세요...

궁금한게 있어서 질문드립니다.

에디트박스 3개로 년, 월, 일을 입력받았구요

이걸 날짜방식으로 어케 바꾸는지요?

ex) box1 : 2000, box2 : 1, box3 : 9 -> 20000109

쉬운거 같으면서도 어렵군요...

아시는 분있으면 답 좀 주세요 ^^



8  COMMENTS
  • Profile
    조규춘 2000.03.14 00:17
    왕초짜 wrote:

    > 안녕하세요...

    > 궁금한게 있어서 질문드립니다.

    > 에디트박스 3개로 년, 월, 일을 입력받았구요

    > 이걸 날짜방식으로 어케 바꾸는지요?

    > ex) box1 : 2000, box2 : 1, box3 : 9 -> 20000109

    > 쉬운거 같으면서도 어렵군요...

    > 아시는 분있으면 답 좀 주세요 ^^

    >



    안녕하셔요!

    저도 초짜지만 아는데로 하지요! 히~!

    날짜를 쪼개는 것은 DecodeDate함수를 쓰면 되지요

    다음은 오늘의 날짜를 쪼개는 것이지요!

    var

    Present: TDateTime;

    Year, Month, Day : Word;

    begin

    Present:= Now;

    DecodeDate(Present, Year, Month, Day);

    Label1.Caption := IntToStr(Year)+'년'+IntToStr(Month)+'달'+IntToStr(Day)+'일 입니다.';

    end;



    쪼개진 날짜를 합치는 함수는 EncodeDate 이지요!

    var

    MyDate: TDateTime;

    begin

    MyDate := EncodeDate(1998, 12, 1);

    Label1.Caption := DateToStr(MyDate);

    end;



    그리하여 MyDate := EncodeDate(strtoint(edit1.Text),strtoint(edit2.Text ),strtoint(edit3.Text) );

    이런식으로 해도 돼는되요! 히~!



    행복하셔요! 대전에서....

  • Profile
    왕초짜 2000.03.14 01:03
    MyDate:=EncodeDate(strtoint(ed1.Text),strtoint(ed2.Text ),strtoint(ed3.Text) );



    요렇게 하니까 년도가 짤리는군요 (ed1 : 2000, ed2 :01, ed3 : 01 -> 00-01-01)

    그냥 붙여서 20000101이 되게 하는 방법은요?



  • Profile
    parkisu 2000.03.14 09:46
    왕초짜 wrote:

    > MyDate:=EncodeDate(strtoint(ed1.Text),strtoint(ed2.Text ),strtoint(ed3.Text) );

    >

    > 요렇게 하니까 년도가 짤리는군요 (ed1 : 2000, ed2 :01, ed3 : 01 -> 00-01-01)

    > 그냥 붙여서 20000101이 되게 하는 방법은요?

    >



    제어판의 국가별설정에서 날짜의 형식을 살펴보십시오. yyyy-MM-dd로 형태로 되어있지 않으면 위와 같은 현상이 일어납니다.

    yyyy는 년도를 네자리로 나타나게 합니다.



  • Profile
    박성훈 2000.03.14 00:16
    왕초짜 wrote:

    > 안녕하세요...

    > 궁금한게 있어서 질문드립니다.

    > 에디트박스 3개로 년, 월, 일을 입력받았구요

    > 이걸 날짜방식으로 어케 바꾸는지요?

    > ex) box1 : 2000, box2 : 1, box3 : 9 -> 20000109

    > 쉬운거 같으면서도 어렵군요...

    > 아시는 분있으면 답 좀 주세요 ^^

    >



    StrToDate이나 EncodeDate함수를 이용해 보세요.



    var



    D:TDate;



    D:= StrToDate(box1.Text+'-'+box2.Text+'-'+box3.Text);

    //또는

    D:= EncodeDate(StrToInt(box1.Text),StrToInt(Box2.Text),StrToInt(box3.Text));



  • Profile
    최용일 2000.03.14 00:13
    다음과 같이 FormatDateTime함수를 이용하세요



    FormatDateTime('yyyymmdd', StrToDate(Box1.Text+'-'+Box2.Text+'-'+ Box3.Text);



    왕초짜 wrote:

    > 안녕하세요...

    > 궁금한게 있어서 질문드립니다.

    > 에디트박스 3개로 년, 월, 일을 입력받았구요

    > 이걸 날짜방식으로 어케 바꾸는지요?

    > ex) box1 : 2000, box2 : 1, box3 : 9 -> 20000109

    > 쉬운거 같으면서도 어렵군요...

    > 아시는 분있으면 답 좀 주세요 ^^

    >

  • Profile
    왕초짜 2000.03.14 00:57
    최용일 wrote:

    > 다음과 같이 FormatDateTime함수를 이용하세요

    >

    > FormatDateTime('yyyymmdd', StrToDate(Box1.Text+'-'+Box2.Text+'-'+ Box3.Text);

    >



    위와 같이 했더니 이런 에러가 나는데요?

    뭣땜에 그렇지요? T_T



    procedure Tflye0101.BitBtn1Click(Sender: TObject);

    var x, y : Tdate;

    begin

    x := EncodeDate(StrToInt(Ed_yy.Text),strtoint(Ed_mm.Text),StrToInt(Ed_dd.Text));

    y := Formatdatetime('yyyymmdd', x);

    end;



    [Error] lye0101.pas(234): Incompatible types: 'TDate' and 'String'

  • Profile
    최용일 2000.03.14 01:17
    당연히 에러가 날수밖에 없습니다.

    FormatDateTime은 TDate형을 돌려주는게 아니라 날짜의 문자열을 돌려주니까요..

    만일 버튼을 클릭했을때 20000101 이런 형식의 날짜를 Label1에 출력한다면



    procedure Tflye0101.BitBtn1Click(Sender: TObject);

    var

    X: TDate;

    begin

    X := EncodeDate(StrToInt(Ed_yy.Text),strtoint(Ed_mm.Text),StrToInt(Ed_dd.Text));

    Label1.Caption := FormatDateTime('yyyymmdd, X);

    end;



    EncodeDate보다는 StrToDate가 더 쓰시기에는 좋다고 생각하는데... EncodeDate를

    쓰시면 굳이 스트링을 정수로 안 바꾸시고도 바로 사용이 가능합니다.







    > procedure Tflye0101.BitBtn1Click(Sender: TObject);

    > var x, y : Tdate;

    > begin

    > x := EncodeDate(StrToInt(Ed_yy.Text),strtoint(Ed_mm.Text),StrToInt(Ed_dd.Text));

    > y := Formatdatetime('yyyymmdd', x);

    > end;

    >



    왕초짜 wrote:

    > 최용일 wrote:

    > > 다음과 같이 FormatDateTime함수를 이용하세요

    > >

    > > FormatDateTime('yyyymmdd', StrToDate(Box1.Text+'-'+Box2.Text+'-'+ Box3.Text);

    > >

    >

    > 위와 같이 했더니 이런 에러가 나는데요?

    > 뭣땜에 그렇지요? T_T

    >

    > procedure Tflye0101.BitBtn1Click(Sender: TObject);

    > var x, y : Tdate;

    > begin

    > x := EncodeDate(StrToInt(Ed_yy.Text),strtoint(Ed_mm.Text),StrToInt(Ed_dd.Text));

    > y := Formatdatetime('yyyymmdd', x);

    > end;

    >

    > [Error] lye0101.pas(234): Incompatible types: 'TDate' and 'String'

  • Profile
    blueSky 2000.03.14 01:11
    왕초짜 wrote:

    > 최용일 wrote:

    > > 다음과 같이 FormatDateTime함수를 이용하세요

    > >

    > > FormatDateTime('yyyymmdd', StrToDate(Box1.Text+'-'+Box2.Text+'-'+ Box3.Text);

    > >

    >

    > 위와 같이 했더니 이런 에러가 나는데요?

    > 뭣땜에 그렇지요? T_T

    >

    > procedure Tflye0101.BitBtn1Click(Sender: TObject);

    > var x, y : Tdate;

    > begin

    > x := EncodeDate(StrToInt(Ed_yy.Text),strtoint(Ed_mm.Text),StrToInt(Ed_dd.Text));

    > y := Formatdatetime('yyyymmdd', x);

    > end;

    >

    > [Error] lye0101.pas(234): Incompatible types: 'TDate' and 'String'





    해당의 에러메세지는 타입문제입니다.

    위의 선언구문중 y의 값은 string형으로 바꾸면 됩니다.

    var

    x : Tdate;

    y : String;



    • 왕초짜
    • 2000.03.13 23:26
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.03.14 00:17
      왕초짜 wrote: > 안녕하세요... > 궁금한게 있어서 질문드립니다. > 에디트박스 3개로 년, 월, 일을 입...
    • 왕초짜
      2000.03.14 01:03
      MyDate:=EncodeDate(strtoint(ed1.Text),strtoint(ed2.Text ),strtoint(ed3.Text) ); 요렇게 하니까 년...
    • parkisu
      2000.03.14 09:46
      왕초짜 wrote: > MyDate:=EncodeDate(strtoint(ed1.Text),strtoint(ed2.Text ),strtoint(ed3.Text) ); > ...
    • 박성훈
      2000.03.14 00:16
      왕초짜 wrote: > 안녕하세요... > 궁금한게 있어서 질문드립니다. > 에디트박스 3개로 년, 월, 일을 입...
    • 최용일
      2000.03.14 00:13
      다음과 같이 FormatDateTime함수를 이용하세요 FormatDateTime('yyyymmdd', StrToDate(Box1.Text+'-'+...
    • 왕초짜
      2000.03.14 00:57
      최용일 wrote: > 다음과 같이 FormatDateTime함수를 이용하세요 > > FormatDateTime('yyyymmdd', Str...
    • 최용일
      2000.03.14 01:17
      당연히 에러가 날수밖에 없습니다. FormatDateTime은 TDate형을 돌려주는게 아니라 날짜의 문자열을 돌려...
    • • • •
    • 젠키
      2000.03.13 23:42
      철이 wrote: > delphi에서 엑세스 디비를 연결하여 사용하였습니다.... > 프로그램이 실행되거나, 디비가...
    • 철이
      2000.03.14 18:34
      젠키 wrote: > 철이 wrote: > > delphi에서 엑세스 디비를 연결하여 사용하였습니다.... > > 프로그램이...
    • 근수
      2000.03.25 07:16
      박성훈 wrote: > 2000-02-02 02:50:00과 2000-03-03 14:10:00의 차이를 구한다음 이것을 시간으로 표시하...
    • 최용일
      2000.03.14 00:58
      TimeStamp를 이용하시면 간단히 구하실 수 있습니다. var Time1, Time2, pTime: TTimeStamp; begin ...
    • 박성훈
      2000.03.14 00:23
      박성훈 wrote: > 2000-02-02 02:50:00과 2000-03-03 14:10:00의 차이를 구한다음 이것을 시간으로 표시하...
    • 송정환
    • 2000.03.13 22:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.13 23:59
      텍스트(.txt)파일로 저장하는 방법처럼 하시면 됩니다. 단지 그 사이사이에 HTML태그를 넣어서 저장하시...
    • 한승수
    • 2000.03.13 22:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장은석
      2000.03.14 15:57
      한승수 wrote: > > 두개 이상 실행시키는 것을 막기 위해 > > 제가 짠 프로그램이 이미 실행중이...
    • blueSky
      2000.03.13 23:55
      한승수 wrote: > > 두개 이상 실행시키는 것을 막기 위해 > > 제가 짠 프로그램이 이미 실행중이...
    • toto1052
    • 2000.03.13 22:02
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 착한악마
      2000.03.14 07:24
      리포트 옵션에 있는 기능이거든요... 리포트 세팅에서 컬럼수를 조정해 보세요....그럼 될겁니다...( 코딩...
    • 하얀까마귀
      2000.03.13 22:19
      안녕하세요 하얀까마귀 입니다... 불행히도 없어요....(
    • 종이학
      2000.03.13 21:00
      Go100 wrote: > 어떤 폼에서 조회를 하면서 DbGrid 숫자 필드에 > (1,000,000,000) 이처럼 3자리에 컴마...
    • 하얀까마귀
      2000.03.13 20:55
      안녕하세요 하얀까마귀 입니다. 처음 질문은 그냥 불러 올때 소트를 하시구요... order by 하시면 됩니...
    • blueSky
      2000.03.13 19:11
      김경한 wrote: > > 급합니다. > > 시간이 만약 16:45 초라면,, (16 분 45 초) > > 에디트 박스...
    • 김경한
      2000.03.13 19:25
      blueSky wrote: > 김경한 wrote: > > > > 급합니다. > > > > 시간이 만약 16:45 초라면,, (16 분 ...
    • 강인규
      2000.03.13 21:59
      위의 분이 답변주신것이 맞습니다. 초에서 'ss'를 해주면 01초가 되지요. 아마도 문자형으로 디비에 저...
    • 박성훈
    • 2000.03.13 18:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.13 20:41
      저의 답변을 이해를 못하신것 같군요... 저는 OS(explorer.exe)차원에서 이야기한 것인데... 그럼 두번째 ...
    • 박상길
    • 2000.03.13 18:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.03.14 23:54
      박상길 wrote: > Windows CE 에서 델파이 지원이 가능한지 알고 싶습니다....... 안녕하세요 하얀까마...
    • 안대규
    • 2000.03.13 18:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2000.03.13 18:56
      안대규 wrote: > 안녕하세요~~~ > 궁금중이 있어 이렇게 글을 올립니다. > 델파이에서 제공하는 vcl디렉...
    • 초보
    • 2000.03.13 17:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장은석
      2000.03.14 10:15
      초보 wrote: > 레지스트리의 rootkey: HKEY_LOCAL_MACHINE 에서 > 'SOFTWAREMicrosoftWindowsCurrentVers...
    • 초보
      2000.03.15 01:08
      제 질문을 바로 이해해 주시고 답변 주시니 고마습니다. 덕분에 성공했습니다.
    • 최용일
      2000.03.13 21:22
      SetWindowHookEx와 같은 API함수를 이용하여 시스템전체의 메세지나 이벤트를 장악하시면 됩니다. 쉽게 말...
    • 조규춘
      2000.03.13 21:16
      고수는 아니지만 그냥 한번 올려 봅니다. 아래의 소스는 ctrl + alt + del을 눌렀을때 내가 만든 프로그...
    • 최용일
      2000.03.13 23:47
      레지스트리에 핫키를 등록하시어 사용하시면 됩니다. 그럼 폼이 활성화되었건 비활성화 되었건간에 상관없...
    • 때밀이
    • 2000.03.13 10:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 종이학
      2000.03.13 20:56
      때밀이 wrote: > test1과 test2에서 다음과 같이 비교하려 합니다. > > select a.* from test1 a, > ...