Fórum Contador de dias corridos #602185
03/05/2019
0
Bom dia, estou com um problema, tenho um arquivo em pdf que tenho um campo com uma data inicial e quero em outro campo que aparece nele quantos dias se passaram da data inserida até o dia de hoje. Um campo começaria a contar do mesmo dia e em outro caso começaria a contar do próximo dia.
Exemplo paciente internou no dia 03/05/2019 assim em no dia 07/05/2019 ele estaria no D5 de internação pois começou a contar do primeiro dia e em um outro caso, comecei com um antibiótico no dia 03/05/2019, assim no dia 07/05/2019 ele estaria no D4 pois começa a contar no próximo dia. Alguém pode me fazer uma gentileza de me ajudar como fazer esses dois scripts para ser inserido neste arquivo pdf ?
Exemplo paciente internou no dia 03/05/2019 assim em no dia 07/05/2019 ele estaria no D5 de internação pois começou a contar do primeiro dia e em um outro caso, comecei com um antibiótico no dia 03/05/2019, assim no dia 07/05/2019 ele estaria no D4 pois começa a contar no próximo dia. Alguém pode me fazer uma gentileza de me ajudar como fazer esses dois scripts para ser inserido neste arquivo pdf ?
Renato Orsini
Curtir tópico
+ 0
Responder
Posts
03/05/2019
Diego Bruning
Quanto a parte do PDF eu não entendi muito bem, mas para obter a diferença em dias entre duas datas poderia fazer como segue:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import org.junit.Assert;
public class DifferenceBetweenTwoDates {
public static void main(String[] args) throws ParseException {
String sFirstDay = "06/24/2017";
String sSecoundDay = "06/30/2017";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date firstDate = sdf.parse(sFirstDay);
Date secondDate = sdf.parse(sSecoundDay);
// Sem java 8
DifferenceBetweenTwoDates ex = new DifferenceBetweenTwoDates();
Assert.assertEquals(ex.obterDiferencaSemJava8(firstDate, secondDate), 6);
Assert.assertEquals(ex.obterDiferencaSemJava8APartirSegundoDia(firstDate, secondDate), 5);
// Com java 8
DateTimeFormatter dtm = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate d1 = LocalDate.parse(sFirstDay, dtm);
LocalDate d2 = LocalDate.parse(sSecoundDay, dtm);
Assert.assertEquals(ex.obterDiferencaComJava8(d1, d2), 6);
Assert.assertEquals(ex.obterDiferencaComJava8APArtirSegundoDia(d1, d2), 5);
}
public long obterDiferencaSemJava8(Date firstDate, Date secondDate) {
long diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
long diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
System.out.println(diff);
return diff;
}
public long obterDiferencaSemJava8APartirSegundoDia(Date firstDate, Date secondDate) {
Calendar c = Calendar.getInstance();
c.setTime(firstDate);
c.add(Calendar.DATE, 1);
return obterDiferencaSemJava8(c.getTime(), secondDate);
}
public int obterDiferencaComJava8(LocalDate d1, LocalDate d2) {
Period period = Period.between(d1, d2);
int diff = period.getDays();
System.out.println(diff);
return diff;
}
public int obterDiferencaComJava8APArtirSegundoDia(LocalDate d1, LocalDate d2) {
d1 = d1.plusDays(1);
return obterDiferencaComJava8(d1, d2);
}
}
Responder
Gostei + 0
05/05/2019
Renato Orsini
Deixe me explicar melhor a minha pergunta.
Tenho um formulario em PDF e tenho um campo denominado entradacti que tem a data de entrada do paciente no CTI e preciso que o tempo de internação contado a partir do primeiro dia em relacao a data atual, retorne em um campo denominado diasinternacao ( números redondos).
Ao mesmo tempo que tenho 4 campos de antibióticos chamados dataatb1, dataatb2, dataatb3, dataatb4 que devem retornar o tempo de antibióticos a contar do segundo dia em relacao a data atual nos campos tempo1, tempo2, tempo3, tempo4 respectivamente.
Alem de atualizar a data atual em um campo chamado dataatual.
Assim tenho um botao com o emblema do hospital que ao passar por ele ou clicar nele, ativaria este script e os dados anteriores seriam atualizados para os dados recentes todos os dias quando forem evoluir os pacientes.
Dá para fazer desse jeito? Grato desde já a ajuda já prestada
Tenho um formulario em PDF e tenho um campo denominado entradacti que tem a data de entrada do paciente no CTI e preciso que o tempo de internação contado a partir do primeiro dia em relacao a data atual, retorne em um campo denominado diasinternacao ( números redondos).
Ao mesmo tempo que tenho 4 campos de antibióticos chamados dataatb1, dataatb2, dataatb3, dataatb4 que devem retornar o tempo de antibióticos a contar do segundo dia em relacao a data atual nos campos tempo1, tempo2, tempo3, tempo4 respectivamente.
Alem de atualizar a data atual em um campo chamado dataatual.
Assim tenho um botao com o emblema do hospital que ao passar por ele ou clicar nele, ativaria este script e os dados anteriores seriam atualizados para os dados recentes todos os dias quando forem evoluir os pacientes.
Dá para fazer desse jeito? Grato desde já a ajuda já prestada
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)