请部怎样在一段时间中得到一个随机时间.
如2005年7月7日10:00到2005年7月7日11:00
随机得到一个时间,可以是它们中间的任意一个数(如2005年7月7日10:11或2005年7月7日10:30等)
delphi中怎样连接VF数据库(我从来没有用过VF)分数少了还可以加

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vStartTime, vEndTime: TTime;
      T: Real;
      R: Real;
    begin
      Randomize;
      vStartTime := StrToTime('2005-07-06 10:00:00');
      vEndTime := StrToTime('2005-07-07 11:00:00');
      T := vEndTime - vStartTime;
      R := Random;
      while R > T do R := R - T;
      Caption := TimeToStr(vStartTime + R);
    end;你可以试验一下行不行?
      

  2.   

    可以直接通过ADO来连接的!
    ODBC提供了连接字符串的
    具体见
    http://blog.csdn.net/foxmail/archive/2004/06/25/26362.aspx
      

  3.   

    while R > T do R := R - T;
      Caption := TimeToStr(vStartTime + R);
    -------
    你这样的算法好像不够随机,
    而且r都是在0跟1之间,
    如果要求有跨天的,比如2005.7.7 10:00-2005.7.10 10:00
    这样就没办法得到2005.7.8 10:00之后的时间。
    改成百分比比较好吧。
      T := vEndTime - vStartTime;
      R := Random;
      T:=T*R;
      Caption := TimeToStr(vStartTime + T);
      

  4.   

    可用Ado控件通过ODBC连接
    同一般连接VF一样
      

  5.   

    datetime其实就是一个数字,可以加减(不能乘除),所以你取在两个datetime范围内取一个随机数就可以
    大伟的思路就是对的,取随机数的地方或者你再改进一下