Código
Para Utilizar basta passar um date time com a data e a hora que você quer, vai retornar um valor de 0 a 1 informando quanto está iluinado
function Lua(Data : TDateTime): Real;
var i, j, k, j2, ju, M: real;
yr, mo, da, ho, mi, se, ms : word;
begin
DecodeDAte(Data, yr, mo, da);
DecodeTime(Data, Ho, Mi, Se, Ms);
i := yr;
j := mo;
k := da + (Ho / 24) + (Mi / 1440) + (se / 86400) + (ms / 86400000);
j2 := int( (j - 14)/12 );
ju := k - 32075 + int(1461 * ( i + 4800 + j2 ) / 4 );
ju := ju + int( 367 * (j - 2 - j2 * 12) / 12);
ju := ju - int(3 * int( (i + 4900 + j2) / 100) / 4);
M:=(Ju+4.867)/ 29.53058;
M:=2*(M-Int(m))-1;
Result := Abs(M) * 100;
end;
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009