[Lazarus-es] Funci?n para convertir n?mero a cadena

JoshyFun joshyfun en gmail.com
Jue Dic 10 00:51:17 CET 2009


Hello Ismael,

Wednesday, December 9, 2009, 11:41:14 PM, you wrote:

ILDGa> UTF8 to ANSI -> Operaciones -> ANSI to UTF8 -> salida
ILDGa> 1 Millón de Gracias Reiteradas

Me alegro mucho :)

ILDGa> Sigo pendiente de como saber si una caja de texto o mejor dicho un TMaskEdit
ILDGa> tiene un valor fecha verdadero o no. Veré como lo soluciono.

Para saber si una fecha es válida simplemente intenta convertirla a
fecha:

var
  Fecha: TDateTime;
begin
  if not TryStrToDate(txtMaskEdit.Text,Fecha) then begin
    Fecha:=0;
  end;
end;

Necesitarás el "DateUtil" en el uses.

ILDGa> Otra cosa existe una forma de saber el primer y último día de un mes, algo
ILDGa> así como las siguientes funciones en Visual Basic
ILDGa> DateSerial(2009, 12, 1)  = 01/12/2009
ILDGa> DateSerial(2009, 13, 0)  = 31/12/2009

DateSerial no recuerdo que hacía, lo siento... pero para operar con
fechas tienes varias funciones. Por ejemplo para saber el primer y
último dia da un mes:

var
  TestDate: TDateTime;
  DiaPrimero:TDateTime;
  DiaUltimo: TDateTime;
  Y,M,D: integer;
begin
  TestDate:=EncodeDateTime(2009,12,10,0,0,0,0);
  //Si queremos "hoy" pues...
  TestDate:=Now;
  //Descomponemos la fecha...
  DecodeDate(TestDate,Y,M,D);
  //Restamos el dia del mes y sumamos 1 (10 - 10 + 1)
  DiaPrimero:=IncDays(TestDate,(D*-1)+1);
  //Sumamos un mes a DiaPrimero, lo que nos dará el
  //primer dia del mes siguiente y le restamos 1.
  DiaUltimo:=IncDay(IncMonth(DiaPrimero),-1);
end;

Esto es una ilustración de lo que se puede hacer, aunque un poco
enrevesada, más fácil y directo sería:

  //Descomponemos la fecha...
  DecodeDate(TestDate,Y,M,D);
  DiaPrimero:=EncodeDate(Y,M,1);
  DiaUltimo:=EndOfMonth(Y,M);

Para este tipo de operaciones tienes IncYear, IncMonth, IncDay,
incHour, incMinute, IncSecond, etc... o cosas como DayOfWeek(),
DayOfYear, DayOfTheMonth, SecondsBetween, SecondsSpan, DaysBetween,
YearsBetween, CompareDate, CompareDateTime, DateTimeToUnix,
EndOfAMonth, etc... Lo que puedes hacer es abrir la unit
"DateUtil.pas" y ver la cantidad de funciones que hay para trabajar
con fechas. O si lo prefieres dispongo de unos .CHM que son los
manuales de freepascal y lazarus para poder ser visionados con el
explorer o similar, pero pesan bastante, unos 12 MB.

-- 
Best regards,
 JoshyFun





More information about the Lazarus-es mailing list