git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@2 93f398dd-4eb6-7a46-baf6-13f46f578da2
61 lines
1.4 KiB
ObjectPascal
61 lines
1.4 KiB
ObjectPascal
unit uDateUtils;
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes;
|
|
|
|
function DarFechaPrimerDia(Date: TDateTime): TDateTime;
|
|
function DarFechaUltimoDia(Date: TDateTime): TDateTime;
|
|
function EsFechaVacia(AFecha : TDateTime): Boolean;
|
|
function DarInicioAno(AFecha: TDateTime): TDateTime;
|
|
function DarFinAno(AFecha: TDateTime): TDateTime;
|
|
|
|
const
|
|
FECHA_NULA = -700000;
|
|
|
|
implementation
|
|
|
|
|
|
function DarInicioAno(AFecha: TDateTime): TDateTime;
|
|
var
|
|
Year, Month, Day: Word;
|
|
begin
|
|
DecodeDate(Date, Year, Month, Day);
|
|
Result := EncodeDate(Year, 1, 1);
|
|
end;
|
|
|
|
function DarFinAno(AFecha: TDateTime): TDateTime;
|
|
var
|
|
Year, Month, Day: Word;
|
|
begin
|
|
DecodeDate(Date, Year, Month, Day);
|
|
Result := EncodeDate(Year, 12, 31);
|
|
end;
|
|
|
|
function EsFechaVacia(AFecha : TDateTime): Boolean;
|
|
begin
|
|
Result := (AFecha = FECHA_NULA) or (AFecha = 0);
|
|
end;
|
|
|
|
function DarFechaPrimerDia(Date: TDateTime): TDateTime;
|
|
var
|
|
Year, Month, Day: Word;
|
|
begin
|
|
DecodeDate(Date, Year, Month, Day);
|
|
Result := EncodeDate(Year, Month, 1);
|
|
end;
|
|
|
|
function DarFechaUltimoDia(Date: TDateTime): TDateTime;
|
|
var
|
|
Year, Month, Day: Word;
|
|
begin
|
|
DecodeDate(Date, Year, Month, Day);
|
|
// (if Month < 12 then inc(Month)
|
|
// else begin Month := 1; inc(Year) end;
|
|
// Result := EncodeDate(Year, Month, 1) - 1;
|
|
Result := EncodeDate(Year, Month,
|
|
MonthDays[IsLeapYear(Year), Month]);
|
|
end;
|
|
end.
|