delphi 计算加班时间工时的函数


本文整理自网络,侵删。

 
function getTaskTimeStr(BigTime, SmallTime : TDateTime;AValue : Integer):string;
var
  t0 : Double;
  t1 : Integer;
begin
  t0 := MinuteSpan(BigTime , SmallTime); //加班工时
  t1 := Trunc( t0 / 60 / 8 );
  Result := IntToStr(t1 + AValue);
end;

function getDateTimeStr(BigTime, SmallTime : TDateTime):string;
var
  t0 : Double;
  t1  : Integer;
  Time: TDateTime;
  Hour: Word;
  Minute : Word;
  Second : Word;
  s : string;

begin
  t0 := MinuteSpan(BigTime , SmallTime); //加班总分钟
  t1 := Trunc( t0 / 60 / 8 );
  t0   := t0 - (t1 * 480);
  Time := StrToTime(TimeToStr(Round( t0 * 60 ) /86400 ));
  Hour := HourOf(Time);
  Minute:=MinuteOf(Time);
  Second:=SecondOf(Time);
  if Hour <> 0 then
  begin
    s := IntToStr(Hour) + ' 小时 ';
  end;

  if Minute <> 0 then
  begin
    s := s + IntToStr(Minute) + ' 分钟';
  end;

  Result := s;
//  Result := FormatDateTime('h 小时 nn 分钟 ss 秒',Time);
end;

function GetOverHour(t0 : Double ;AValue : Integer):string;
var
  t1 : Integer;  //获取加班工时
begin
  t1 := Trunc( t0 / 60 / 8 );
  Result := IntToStr(t1 + AValue);
end;

function GetOverTime(t0 : Double):string;
var
  t1  : Integer;
  Time: TDateTime;
  Hour: Word;
  Minute : Word;
  Second : Word;
  s : string;

begin     //获取加班小时分钟
  t1 := Trunc( t0 / 60 / 8 );
  t0   := t0 - (t1 * 480);
  Time := StrToTime(TimeToStr(Round( t0 * 60 ) /86400 ));
  Hour := HourOf(Time);
  Minute:=MinuteOf(Time);
  Second:=SecondOf(Time);
  if Hour <> 0 then
  begin
    s := IntToStr(Hour) + ' 小时 ';
  end;

  if Minute <> 0 then
  begin
    s := s + IntToStr(Minute) + ' 分钟';
  end;

  Result := s;
end;

相关阅读 >>

Delphi split 方法使用

Delphi 18位身份证号码的校验

Delphi 一个绘制虚线的非常规函数(常规方法,打印机上绘制不出虚线)

Delphi 字符串分割

Delphi 如何打开记事本并显示指定内容

Delphi 用代码实现为程序创建快捷方式的二种方法

Delphi 获取窗体坐标

Delphi入门语法

使用idhttp抓取百度和google会出错

Delphi让tedit控件的内容居中或右对齐,限制位数,仅允许输入数字

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...