Q&A

  • 몇주차인지 계산하는 방법 부탁드립니다.
일자를 대입해서 해당일자가 몇주차인지 알고싶은데
어떠케 하면 알수가 있는지요?

고수님들

한수 부탁드림미다.
4  COMMENTS
  • Profile
    이준해 2002.10.01 01:54
    function WeekOfTheYear(const AValue: TDateTime): Word;
    1-53 사이의 값이 Return 됩니다.


  • Profile
    강상용 2002.10.01 04:41
    저도 옛날에 고민 하다가 함수를 하나 만들었습니다.

    //일자를 입력 받아서 년사이의 몇번째주의 수인지를 반환합니다

    function Week_Pos(DDateStr: TDate):Integer;
    var i, j ,k, Yoil: Integer;
        YearStr: String;
        FDateStr, EDateStr: TDate;
    begin
      YearStr := Copy(DateToStr(DDateStr),1,4);

      case DayOfWeek(StrToDate(YearStr+'-01-01')) of
        1: Yoil := 0;  //일
        2: Yoil := 1;  //월
        3: Yoil := 2;  //화
        4: Yoil := 3;  //수
        5: Yoil := 4;  //목
        6: Yoil := 5;  //금
        7: Yoil := 6;  //토
      end;

      j := 0;
      for i := 1 to 53 do
      begin
        k := i * 7;
        EDateStr := StrToDate(YearStr+'-01-01') -1 -Yoil +k; //주의 마지막일자
        FDateStr := EDateStr -6;   //주의 처음일자
        if (FDateStr <= DDateStr) and (DDateStr <= EDateStr) then
        begin
          j := i;
          Break;
        end;
      end;

      Result := j;
    end;


    참조하세여...^^

  • Profile
    정성한 2002.10.01 04:52
    대단히 감사합니다.

    님의 가르침 잘 활용하겠습니다.

    앞으로도 많의 가르침 부탁드리며

    항상 건강하시기 바랍니다.


  • Profile
    정성한 2002.10.01 02:12

    function WeekOfTheYear(const AValue: TDateTime): Word;
    begin
    end;


    procedure TF_PART41.WEEKExit(Sender: TObject);
    VAR INT_DATE : Integer;

    begin
        INT_DATE := WeekOfTheYear(WEEK.DateTime);
    end;

    WEEK.DateTime 의 값은 오늘날짜로
    했었는데 INT_DATE 의 값이 38264가 발생이 되는데 뭐었이 문제인가요?
    조금더 추가 설명 부탁드립니다.
    .....
    수고하세요.... ^.^