Q&A

  • 연도 계산좀 알려주세요..!!
연도계산을 하려는데..

올해 -1 = 작년, 이거 어떻게 하죠???   --;


1  COMMENTS
  • Profile
    허일학 2002.02.10 01:32


    날짜 계산함수입니다....
    function DateAdd(interval:TDateAdd_interval; Number:integer; DateTime:TDateTime):TDateTime;
    var ts:TTimeStamp;
       st:TSystemTime;
       MDays:integer;
       AllMonth:integer;

       procedure TimeAdd(Ds,Mt:integer);
       begin
         ts.Date := ts.Date + Number div Ds;
         ts.Time := (Number mod Ds) * Mt;
       end;
    begin
    result:=DateTime;
    if number=0 then exit;
    if interval in [di_Msec,di_Sec,di_Minute,di_hour,di_Day] then begin
       ts:=DateTimeToTimeStamp(DateTime);
       case interval of
         di_Msec:  TimeAdd(86400000,1);
         di_Sec:   TimeAdd(86400,1000);
         di_Minute:TimeAdd(1440,60000);
         di_hour:  TimeAdd(24,3600000);
         di_Day:   ts.Date := ts.Date + number;
       end;
       while ts.Time<0 do begin
          ts.Date:=ts.Date -1;
          ts.Time:=ts.Time + 86400000;
       end;
       result := TimeStampToDateTime(ts);
    end else begin
       DateTimeToSystemTime(DateTime,st);
       case interval of
         di_Month: begin
                     AllMonth:=st.wYear * 12 + st.wMonth + number;
                     if AllMonth<1 then AllMonth:=1;
                     st.wYear:=(AllMonth - 1)  div 12;
                     st.wMonth:=(AllMonth - 1)  mod 12 + 1;
                   end;
         di_Year:  st.wYear := st.wYear + number;
       end;
       MDays:=MonthDays[IsLeapYear(st.wYear)][st.wMonth];
       if st.wDay>MDays then st.wDay := MDays;
       result := SystemTimeToDateTime(st);
    end;
    end;

    사용방법은 다음과 같습니다..
    dt := now //오늘 날짜와시간....

    DateAdd(di_Sec,     10, dt)  //현재시간에서 10초후
    DateAdd(di_Minute, 10, dt)  //현재시간에서 10분후
    DateAdd(di_Hour,    10, dt)  //현재시간에서 10시간후
    DateAdd(di_Day,     10, dt)  //오늘 날짜에서 10일후
    DateAdd(di_Month,  10, dt)  //현재월 에서 10개월후
    DateAdd(di_Year,    10, dt)  //현재년에서 10년후

    마이너스(-) 값을 입력하시면 꺼꾸로 계산되겠죠...
    그러면 원하시는 결과를 얻 을 수 있을겁니다...^^...

    • Cos Consulting
      2002.02.13 13:29
      텍스트파일 엑세스는 여러방법이 있겠지만.. 가장 쉬운방법은... TStringList 를 이용하는겁니다... ...
    • 강환춘
      2002.02.15 09:51
      답변 정말 고맙습니다. 그런데 읽기 할때요 만약에 첫재줄에 11120 이라고 둘째줄에 11290 이라고 있을...
    • Cos Consulting
      2002.02.15 15:44
      숙제하고 계십니까 ? -_- 답은..당연히 가능합니다. Input text file 이 Fixed length 면 copy 루틴으...
    • 강환춘
      2002.02.15 18:54
      네 ^^ 숙제 하고 있습니다... 답변 해주신것 감사드립니다.
    • 박정훈
    • 2002.02.12 20:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황선웅
      2002.02.14 17:52
      혹시 user table에 user를 추가 하실때 host필드란에 '%'로 입력하셨는지요...... 위의 값은 모든 호스트...
    • Cos Consulting
      2002.02.13 13:47
      Database1 이 TDatabase 일경우.. Alias 를 안쓰는 설정은 TQuery 에서 TDatabase 의 설정을 사용할수...
    • 델파이 초보
      2002.02.13 16:00
      답변 감사합니다 하지만 안되네요 ^^;
    • Cos Consulting
      2002.02.15 15:42
      프로젝트 옵션에서 Output directory 를 지정하지 않으면 델파이에서 Project Run 시에 application.exen...
    • Coolguy
    • 2002.02.12 15:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Cos Consulting
      2002.02.12 19:09
      Process 가 폼어베잇할시간이 없이.. 반복계산에만 집중돼서 그래요... application.processmessages ...
    • 정성훈
    • 2002.02.12 10:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이병훈
      2002.02.13 05:02
      안녕하세요. ^^ 훔. 서브쿼리를 사용하시면 될것 같은데요. select * from aaa where kk in (selec...
    • 원동희
    • 2002.02.12 10:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.12 19:43
      이렇게 해보시는게 어떨지.....^^ Query1.ExecSQL;   --> Query1.Open;
    • 이준희
      2002.02.13 23:32
      uses math;    // 요기에 파이가 3.141592 procedure TForm1.Button1Click(Sende...
    • 정성훈
    • 2002.02.12 01:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.12 03:03
      음... 정확하게 무엇과 무엇이 조인되는 건지는잘 모르겠습니다만... ANSI문법상 조인되는 문법은 다음...
    • 정성훈
    • 2002.02.11 22:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.15 00:46
      도움말에 그와 비슷한 부분이 있어서 올려드립니다 원하시는 답변이 아닐지라도 참고하시면 도움이 되리...
    • 김현희
    • 2002.02.10 01:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.10 01:51
      음....저의 다순한 생각도 델파이 버젼이 맞지않아서 그런것 같군요.. 저확한 답변이 아니고 추측하는...
    • 박성훈
    • 2002.02.10 01:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • gudwhrla
      2002.02.11 20:33
      New -> Project 탭을선택하고 상속받을 폼을 선택하고 확인을 누르면 똑같은 자식폼이 생깁니다. Inhe...
    • 정두진
    • 2002.02.10 00:53
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 황보창
    • 2002.02.09 22:21
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김상호
    • 2002.02.09 22:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.10 10:01
      음... 좀 어렵네요... 원하시는 방법은 아닙니다만.. 이방법은 어떨지 몰겠군요... 다음과 같이 하시...
    • 김상조
    • 2002.02.09 20:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 허일학
      2002.02.10 01:32
      날짜 계산함수입니다.... function DateAdd(interval:TDateAdd_interval; Number:integer; DateTime:T...
    • Tk
      2002.02.09 23:55
      그냥 엘셀 파일메뉴보면 다른이름으로 저장 에서 dbf 파일루 저장하세요 ^^; 그담엔 sql 쭈쭉 하시면 ...
    • 황선웅
      2002.02.09 22:59
      ADO 콤포를 쓰시면 안되는건가요? 엑셀 화일 불러들여서 루프를 돌리던가 하셔서 각각의 원하시는 테이...
    • sjHwang
    • 2002.02.09 18:54
    • 0 COMMENTS
    • /
    • 0 LIKES
    • blackjewel
      2002.02.16 10:59
      이런 방법은 어떨런지... 제가 여러개의 filter 줄때 사용하는 방법인데여.. cFiltGetChe, cFiltCode1....
    • 김정선
      2002.02.10 23:25
      CheckBox 를 쓰시면 될거 같습니다. 각 종류별 체크박스를 만든 후 체크박스를 선택된것만 Filter 에 넣...
    • 황선웅
      2002.02.09 22:50
      Filter는 String 값을 받습니니다. 그러니까 각 조건일때 String변수를 정의해서 대입한후 그변수를 Ta...