Fórum Somar 10 dias a uma data. #565299

09/04/2009

0

Tenho o seguinte String: ?01/09/2004? Desejo somar 10 dias nesta data. Quero saber se tem como acrescenter 10 dias sem ter que desmembrar a data. Eu queria fazer o seguinte : resultado = 01/09/2004 + 10 resultado = 11/09/2004 Mas não sei como faze-lo e também não estou encontrando exemplos no fórum. Por gentileza, você pode me passar um exemplo? Muito obrigado por sua atenção!
Sandrod

Sandrod

Responder

Post mais votado

09/04/2009

Aí Paulo, a maneira como você ensinou é muito legal e bem mais simples. Eu fiz algumas alterações para melhorar o entendimento para quem estiver com dúvidas como eu estava.
1
2
3
4
5
6
7
8
9
10
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
Date a = new Date("2004/09/01");       
a.setDate(a.getDate() + 10);       
 
String formato = "dd/MM/yyyy";
SimpleDateFormat dataFormatada = new SimpleDateFormat(formato);
System.out.println("Daqui há dez dias: " + dataFormatada.format(a));
Muito obrigado Paulo!

Sandrod

Sandrod
Responder

Gostei + 1

Mais Posts

09/04/2009

Paulohbmetal

Bom, vc pode fazer assim:
1
minhaData.setDate(minhaData.getDate() + 10);
A Paz!!
Responder

Gostei + 0

09/04/2009

Sandrod

Value paulohbmetal, obrigado por sua dica! Achei um exemplo legal aqui no fórum, procurem por (subtrair data) Eu peguei o exemplo e somei 60 dias ao dia 02/09/2004 e tive o dia 02/12/2004 como resultado, ou seja, funcionou. Até mais galera, valeu!
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
public static void main (String args[])
    {  
     SimpleDateFormat sd = new SimpleDateFormat("dd/MM/yyyy");
      
     Calendar c = new GregorianCalendar(2004, 9, 2);
      
     System.out.println("Data: " + sd.format(c.getTime()));
      
     c.add(Calendar.DAY_OF_MONTH, 60);
     System.out.println("Sessenta dias depois: " + sd.format(c.getTime()));
      
     c.add(Calendar.DAY_OF_MONTH, -1);
     System.out.println("Um dia antes: " + sd.format(c.getTime()));
      
     c.add(Calendar.MONTH, -1);
     System.out.println("Um mês antes: " + sd.format(c.getTime()));
      
     c = new GregorianCalendar(2003, Calendar.MARCH, 3);
     System.out.println("Data: " + sd.format(c.getTime()));
      
     c.add(Calendar.DAY_OF_MONTH, -1);
     System.out.println("Um dia antes: " + sd.format(c.getTime()));
      
     c.add(Calendar.MONTH, -1);
     System.out.println("Um mês antes: " + sd.format(c.getTime()));
    }
Responder

Gostei + 0

09/04/2009

Sandrod

Galerinha estou enviando está classe como exemplo, é só pegar e rodar, ok! Até mais!
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
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
 
public class Teste
{
 
 public static void main(String[] args)throws ParseException
 {
 Teste teste = new Teste();
         
        System.out.println(teste.somaData("2004-07-01", 10));
      
 }
 
    public String converteDataBrasil(String data)
    {  
        String dataConvertida = "";    
        try
        {
             SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy/MM/dd");
             SimpleDateFormat ddMMyyyy = new SimpleDateFormat("dd/MM/yyyy");
             dataConvertida = ddMMyyyy.format(yyyyMMdd.parse(verificaMascaraData(data)));                   
        }
        catch(Exception e)
        {}
         
        return dataConvertida;     
    }
 
    /**
    *   Se a data vier separada por "-"
    * Será trocado por "/"
    */
    public String verificaMascaraData(String data)
    {
        for (int i = 0; i < data.length(); i++)
        {
            char c = data.charAt(i);
            if (c == '-')
                data = data.replace ('-', '/');
        }          
        return data;       
    }
 
    public String somaData(String data, int somaDias)
    {
                 
        Date dt = new Date(verificaMascaraData(data));
        String formato = "dd/MM/yyyy";
        dt.setDate(dt.getDate() + somaDias);       
 
        SimpleDateFormat dataFormatada = new SimpleDateFormat(formato);    
        return dataFormatada.format(dt);
    }
 
 
 public static int intervaloDias (Date d1, Date d2)
 {
 int result = (int)((d1.getTime() - d2.getTime()) / 86400000L);
 return result<0?result*-1:result;
     }
  
}
Responder

Gostei + 0

09/04/2009

Paulohbmetal

[quote="sandrod"]Aí Paulo, a maneira como você ensinou é muito legal e bem mais simples. Eu fiz algumas alterações para melhorar o entendimento para quem estiver com dúvidas como eu estava.
1
2
3
4
5
6
7
8
9
10
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
Date a = new Date("2004/09/01");       
a.setDate(a.getDate() + 10);       
 
String formato = "dd/MM/yyyy";
SimpleDateFormat dataFormatada = new SimpleDateFormat(formato);
System.out.println("Daqui há dez dias: " + dataFormatada.format(a));
Muito obrigado Paulo!
É isso aí cara, é um prazer estar contribuindo com o JavaFree e todas as comunidades que participo.E quando preciso também sempre posto minhas dúvidas. A Paz!!
Responder

Gostei + 0

09/04/2009

Sandrod

Galera a classe que eu postei acima funciona legal. Nas IDEs Realj e Eclipse, consigo compilar, entretanto: AO COMPILAR NO PROMPT DOS e na IDE Realj, aparece isso, mas o programa roda e apresenta o resultado. c:\tomcat 4.0\webapps\ccpr\web-inf\classes\servlets\ccpr>javac teste.java Note: teste.java uses or overrides a deprecated API. Note: Recompile with -deprecation for details. NO ECLIPSE NÃO APARECE NENHUMA MENSAGEM, a classe compila e pronto. Então fui compilar no prompt DOS atribuindo -deprecation e foi apresentado isso como erro: c:\tomcat 4.0\webapps\ccpr\web-inf\classes\servlets\ccpr>javac teste.java -deprecation teste.java:19: warning: Date(java.lang.String) in java.util.Date has been deprecated Date dt = new Date(verificaMascaraData(data)); ^ teste.java:21: warning: getDate() in java.util.Date has been deprecated dt.setDate(dt.getDate() + somaDias); ^ teste.java:21: warning: setDate(int) in java.util.Date has been deprecated dt.setDate(dt.getDate() + somaDias); ^ 3 warnings
Responder

Gostei + 0

09/04/2009

Sandrod

TEM OUTRA COISA IMPORTANTE! A PARTIR DESTE PROBLEMA EU NÃO CONSIGO COMPILAR AS CLASSES que instanciam a classe teste. Ou seja, a classe compila e roda, mas ao ser instanciada, não consigo compilar a classe que a instancia. COMO POSSO RESOLVER ISSO?
Responder

Gostei + 0

09/04/2009

Sandrod

Pessoal eu alterei o método abaixo, pois o método que informei acima estava causando erro :cry: : A classe compilava, mas eu não conseguia instanciá-la de forma alguma em outra classe. Agora está certinho! Até mais! :D
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
public String somaData(String data, int somaDias)
{          
        String dataVerificada = converteDataBrasil(verificaMascaraData(data));
      
        int dia = Integer.parseInt(dataVerificada.substring(0, 2));
        int mes = Integer.parseInt(dataVerificada.substring(3, 5));
    int ano = Integer.parseInt(dataVerificada.substring(6, 10));
         
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
         
        Calendar calendar = new GregorianCalendar(ano, mes, dia);
        Date dt = new Date();
        try
        {            
            dt = sdf.parse(dataVerificada);
             calendar.setTime(dt);
           calendar.add(calendar.DATE, somaDias);                
         }
         catch(ParseException e)
         {
            System.out.println(e.getMessage());
         }
               
         
        return sdf.format(calendar.getTime());
}
[quote="[color=darkgreen][i]2010-04-01[/i] mensagem editada por [i][url=http://javafree.uol.com.br/viewprofile.jbb?u=5274]simu[/url][/i][/color]"][color=green] - adicionadas as tags [b][co[/b][b]de][/b] e [b][/co[/b][b]de][/b] [/color]
Responder

Gostei + 0

01/04/2010

Aurélio Lima

Valew sandrod... seu método foi mto util pra mim... Abração!
Responder

Gostei + 0

22/10/2010

Silvonei Rosa

Bom valew, este Post me ajudou muito, obrigado!
Responder

Gostei + 0

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

Aceitar