delphi에서 시간 비교, 날짜 감소, 날짜 비교

2146 단어
else begin
          oStartDate := FieldByName('offline_start_date').AsDateTime;
          oTime := FieldByName('offline_hours').AsInteger;
          if (FieldByName('offline_flag').asstring = '1')
            and ( oStartDate <= StrToDate(FormatDateTime('YYYY-MM-DD', Now))) then
          begin
            if (ROUND((StrToDate(FormatDateTime('YYYY-MM-DD', Now)) 
              - Trunc(oStartDate))) *24) < oTime then
            begin
              //    
              dmComm.UserInfo.offlineHotType := '2'; // 2      
              LoginOK := True;
              dmcomm.SysParam.ConnectMode := 'off-line';
              dmcomm.UserInfo.SysAccount := 'local';
              CreateMainForm;
              dmcomm.refreshLocalTables;
            end
            else begin
              i_Offline_hours := FieldByName('ioffline_hours').AsInteger;
              i_offline_flag := FieldByName('ioffline_flag').AsString;
              if (i_offline_flag = '1') and (i_Offline_hours>used_i_offline_time) then
              begin
                LoginOK := True;
                dmComm.UserInfo.i_offline_remaining_time := i_Offline_hours 
                  - used_i_offline_time;
                dmcomm.SysParam.ConnectMode := 'off-line';
                dmComm.UserInfo.offlineHotType := '1'; //      
                dmcomm.UserInfo.SysAccount := 'local';
                CreateMainForm;
                dmcomm.refreshLocalTables;
              end
              else begin
                DialogInformation('                      ');
                exit;          
              end;
            end;
          end
          
        end;

코드만 보고 오케이.
 
그리고 간단한 DEMO, 날짜 상감 획득 일수, 함수 운용에 주의하세요
 
procedure TForm1.btn1Click(Sender: TObject);
var d1, d2: TDateTime;
d3: Integer;
begin
  d1 := StrToDate(FormatDateTime('YYYY-MM-DD', Now));
  d2 := StrToDate('2001-09-01');
  d3 := round(d2-d1);
  Showmessage(IntTostr(d3));
end;

좋은 웹페이지 즐겨찾기