Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 210
Poder: 14
compuin Va por buen camino
Calcula Dia Juliano a partir de fecha y hora

Buenos dias foro,

Tengo una funcion para calcular el Dia Juliano, asi

Código Delphi [-]
Function DateJulienne(annee, mois, jour :integer):real;
var
aj, ye,mm,dd : integer;
bj,jj,x : real;
begin
  ye := annee;
  mm := mois;
  dd := jour;
  x := annee + mois / 10 + jour / 10000;
      IF (mm <= 2) THEN
            begin
      ye := ye - 1;
      mm := mm + 12;
      end;
      IF (x > 1583.101512) then
            begin
      aj := ye DIV 100;
      bj := 2 - aj + aj DIV 4;
            end else  bj := 0;
      jj := trunc(365.25 * ye) + trunc(30.6001 * (mm + 1));
      jj := jj + dd + 1720994.5 + bj ;
      DateJulienne := (jj);
end;

Para esta fecha
Código Delphi [-]
'03-11-1972'
funciona correcto y me arroja
Código Delphi [-]
2441624.5000
.

El asunto esta cuando intento agregar la hora a la misma funcion, deberia arrojarme
Código Delphi [-]
2441624.8937
pero lo que me arroja es
Código Delphi [-]
0.72839208304
.

Aca la funcion que uso para calcular incluyendo horas

Código Delphi [-]
Function JourJulien(annee, mois, jour :integer; heure:real ):real;
var
aj,ye,mm,bj,dd : integer;
jj,x : real;
begin
  ye := annee;
  mm := mois;
  dd := jour;
  x := annee + mois / 10 + jour / 10000 + heure / 1000000;
      IF (mm <= 2) THEN
            begin
      ye := ye - 1;
      mm := mm + 12;
      end;
      IF (x > 1583.101512) then
            begin
      aj := ye DIV 100;
      bj := 2 - aj + aj DIV 4;
            end else  bj := 0;
      jj := trunc(365.25 * ye) + trunc(30.6001 * (mm + 1));
      jj := jj + dd + 1720994.5 + bj + heure / 24;
      JourJulien := (jj - 2415020) / 36525;
end; { JourJulien }

Que estoy calculando mal ?
Responder Con Cita
  #2  
Antiguo 22-04-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Es mejor usas DateTimeToJulianDate de delpfi, pero si quieres hacerlo con esa función que publicas puedes hacer esto:


Código Delphi [-]
function DateJulienne(annee, mois, jour :integer; h, m, s, ms: integer): real;
var
  aj, ye,mm,dd : integer;
  bj,jj,x, hh : real;
begin
  ye := annee;
  mm := mois;
  dd := jour;
  x := annee + mois / 10 + jour / 10000;
  if mm <= 2 then
  begin
    ye := ye - 1;
    mm := mm + 12;
  end;
  if x > 1583.101512 then
  begin
    aj := ye DIV 100;
    bj := 2 - aj + aj DIV 4;
  end else  bj := 0;
  jj := trunc(365.25 * ye) + trunc(30.6001 * (mm + 1));
  jj := jj + dd + 1720994.5 + bj ;
  hh := h + m/60 + s/3600 + ms/3600000;
  hh := hh/24;
  DateJulienne := (jj + hh);
end;


Saludos.
Responder Con Cita
  #3  
Antiguo 22-04-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 210
Poder: 14
compuin Va por buen camino
Muchas gracias amigo!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como le resto una hora a la fecha y hora en sql server uper MS SQL Server 3 12-10-2015 20:41:49
Dia Juliano a Fecha trex2000 Varios 4 17-05-2012 22:01:03
Agrupar por fecha, teniendo en el campo fecha y hora El_Raso Firebird e Interbase 3 18-03-2010 22:05:19
obtener solo la fecha en formato fecha y sin hora BlueSteel SQL 14 09-05-2008 16:42:19
Ayuda, Como calcular fecha de vencimiento mensual a partir de una fecha x en delphi Renis Impresión 4 23-08-2007 23:45:14


La franja horaria es GMT +2. Ahora son las 03:12:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi