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 ?
Renato Orsini

Renato Orsini

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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar