Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

20_LESI

Datas em Prolog

Recommended Posts

20_LESI

Estou a iniciar-me nesta linguagem e tenho de entregar já um trabalho complicado na próxima 2ª feira. Estamos com alguns problemas na forma de lidar com as datas, nomeadamente em calcular a diferença entre duas datas. Alguém pode dar uma ajuda, ou arranjar trechos de código que sirvam para nos guiar?

Muito obrigado

Share this post


Link to post
Share on other sites
20_LESI

Ia postar o que temos, mas está tudo mal. Daqui a bocado quando tivermos alguma coisa posto! Brigadão!

EDIT: Após algumas horas conseguimos fazer a função. Aqui fica o código:

%%%% Converte uma data em minutos %%%%
%dataToMin: Data, Hora:Min, variável onde vai ser guardado o resultado -> {V,F}
dataToMin(Dia/Mes/Ano, Hora:Min, Int) :- H is Hora*60,
									 D is (Dia-1)*1440,
									 M is (Mes-1)*43800,
								         A is Ano*525600,
									 Res is (H+D+M+A+Min),
									 Int is Res.

%%%% Subtrair duas datas e apresentar o resultado em minutos %%%%
%subtrairDatas: Data a subtrair, Hora a subtrair, Data à qual vai ser subtraída, Hora à qual vai ser subtraída, variável onde vai ser guardado o resultado -> {V,F}
subtrairDatas(D1,H1, D2,H2, R) :- dataToMin(D1, H1, X),
							  dataToMin(D2, H2, Y),
							  R is Y-X.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.