Asunto: Aplicación consola MSDOS devuelva valor hora intervalo
Hola, necesito realizar un script o aplicación sencilla, un ejecutable en la consola de MS-DOS al que le pase como parámetro dos horas (hora de inicio y hora de fin) y me devuelva 0 si la hora actual del sistema está entre esas horas y si no está en el intervalo que devuelva 1.
Por ejemplo, si la hora actual son las 14:30 y el intervalo es:
Hora inicio: 14:20
Hora fin: 15:30
Debería devolver 0 porque la hora actual está dentro del intervalo.
Había pensado en un primer momento en hacer un script vba o un .bat, luego pensé en hacerlo en .Net (C Sharp C#) pero necesitaría instalar el .Net Framework en los equipos. Así pues había pensado realizarlo en Delphi por ejemplo que lo he usado alguna vez (poco y hace tiempo) y sé que se pueden hacer comandos de MS-DOS que no necesitan instalar nada.
¿Esto es posible?
Publicado:
Mie Sep 02, 2015 8:59 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Aplicación consola MSDOS devuelva valor hora intervalo
Anuncios
varios escribió:
Hola, necesito realizar un script o aplicación sencilla, un ejecutable en la consola de MS-DOS al que le pase como parámetro dos horas (hora de inicio y hora de fin) y me devuelva 0 si la hora actual del sistema está entre esas horas y si no está en el intervalo que devuelva 1.
Por ejemplo, si la hora actual son las 14:30 y el intervalo es:
Hora inicio: 14:20
Hora fin: 15:30
Debería devolver 0 porque la hora actual está dentro del intervalo.
Había pensado en un primer momento en hacer un script vba o un .bat, luego pensé en hacerlo en .Net (C Sharp C#) pero necesitaría instalar el .Net Framework en los equipos. Así pues había pensado realizarlo en Delphi por ejemplo que lo he usado alguna vez (poco y hace tiempo) y sé que se pueden hacer comandos de MS-DOS que no necesitan instalar nada.
¿Esto es posible?
Sí que es posible en Delphi, crea una aplicación (File - New - Other - Console Application) y añade este código (probado en Delphi 6):
Código:
program PandoraCondicion;
{$APPTYPE CONSOLE}
uses
SysUtils, DateUtils;
var
fechaActual : TDateTime;
horaInicio : TDateTime;
horaFin : TDateTime;
anio, mes, dia : Word;
begin
{ TODO -oUser -cConsole Main : Insert code here }
//comprobamos que se hayan pasado dos parámetros
//(hora de inicio y hora de fin)
if (ParamCount = 2) then
begin
//pasamos la hora de inicio a
//día actual con la hora de inicio
horaInicio := StrToDateTime(ParamStr(1));
DecodeDate(now, anio, mes, dia);
horaInicio := RecodeDate(horaInicio, anio, mes, dia);
//pasamos la hora de fin a
//día actual con la hora de fin
horaFin := StrToDateTime(ParamStr(2));
horaFin := RecodeDate(horaFin, anio, mes, dia);
//hora actual para comprobar si
//está en el intervalo de horas anterior
fechaActual := Now;
//comprobamos si la hora actual está en
//el intervalo de hora de inicio y hora de fin
//si está devolverá 0 y si no está devolverá 1
if (fechaActual >= horaInicio) and
(fechaActual <= horaFin) then
Writeln('0')
else
Writeln('1');
end
else
Writeln('Faltan parametros: ' +
PandoraCondicion.exe HoraInicio HoraFin');
end.
La aplicación anterior lee dos parámetros del fichero ejecutable (hora de inicio y hora de fin) y comprueba si la hora actual del sistema está en ese intervalo de horas, si está devuelve 0 y si no está devuelve 1.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A