delphi 加班工时计费算法  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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;



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.035769939422607 seconds