Olá, preciso criar uma condição para gerar datas de vencimento.
a condição deve ser:
pegar data matricula e adicionar o vencimento nos meses subsequentes, abaixo é o modelo, onde preciso pegar a data da matricula, comparar com a data atual e adicionar os vencimentos subsequentes, alguém pode ajudar eu.
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar dt1 = Calendar.getInstance();
Calendar dt2 = Calendar.getInstance();
Calendar dt3 = Calendar.getInstance();
//dt2.add(Calendar.MONTH, 30);
try {
dt3.setTime(sdf.parse(fTxtDtMatricula.getText()));
dt1.setTime(sdf.parse(lblData.getText()));
dt2.setTime(sdf.parse(fTxtDtVencimento.getText()));
} catch (java.text.ParseException e ) {}
int dias = dt3.get(Calendar.MONTH) - dt1.get(Calendar.MONTH);
dt3.add(Calendar.MONTH, 1);
jTextAtraso.setText(String.valueOf(dias));
Boa noite,
Não tive tempo de tentar resolver, mais axo que esse link pode te dar uma ajuda
GregorianCalendar gc = new GregorianCalendar();
//capturando a data
int ano = gc.get(Calendar.YEAR);
int dia = gc.get(Calendar.DATE);
int mes = gc.get(Calendar.MONTH);
// dias a acrescentar
int venc = 20;
// acrescentando 20 dias a data atual
gc.add(Calendar.DATE, venc);
//System.out.println("Dia: " + dia + "\nMes: " + mes + "\nano: " + ano);
// resultado
System.out.println("Dia: " + gc.get(Calendar.DATE));
Caso você esteja utilizando Java 8, a nova API temporal tá sensacional. É bem fácil de entender. Alguns exemplos:
public class Main {
public static void main(String[] args) {
String hojeRaw = "01/03/2017";
DateTimeFormatter formatador = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate hoje = LocalDate.parse(hojeRaw, formatador); // Ou simplesmente LocalDate.now()
System.out.println("Hoje: " + hoje);
// 1. Adicionar unidades de tempo
LocalDate amanha = hoje.plus(1, ChronoUnit.DAYS); // dias
LocalDate daquiUmMes = hoje.plus(1, ChronoUnit.MONTHS); // mêses
LocalDate daquiUmAno = hoje.plus(1, ChronoUnit.YEARS); // anos
System.out.println("Amanha: " + amanha);
System.out.println("Daqui um mês: " + daquiUmMes);
System.out.println("Daqui um ano: " + daquiUmAno);
// 2. Se o vencimento é com 15 dias, você pode somar 15 dias à data informada
final int qtdDias = 15;
LocalDate vencimento = hoje.plusDays(qtdDias);
System.out.println("Vencimento: " + vencimento);
// 3. Calcula diferenca entre duas datas
System.out.println("Diferença entre hoje e daqui um mês em dias: " + DAYS.between(hoje, daquiUmMes));
}
}
O fundamento é esse mesmo Ivbarbosa, o que estou desenvolvendo no caso é um formulário, onde os dados são cadastrados no banco de dados e depois capturados para consulta e edição, havia criado todos objetos como String, porque era apenas para o usuario inserir a data, mas agora, quero fazer que a partir da data da matricula, seja gerado a de vencimento mensalmente, nessa parte o que enviou ajudou a clarear a ideia, já estou mudando os objetos que registram a data para Date, dai uma parte que não sei é a exemplo: para setar uma string faço assim: mod.setNome(txtNome.getText());, para um combobox mod.setEstado((String) cBEstado.getSelectedItem());, mas para data não estou sabendo fazer, tem alguma ideia sobre isso.
É ótima, cobre tudo, porém é em inglês. Não sei se tem material bom em português. Na Casa do código tem um livro só sobre Java 8, deve falar sobre Streams, Lambda e essa parte de Date Time.
Não sei se entendi direito. Você quer pegar a data do campo e setar no objeto?
class Aluno {
LocalDate dataMatricula;
}
// usuário colocou a data de matrícula no campo de texto
// e apertou no botão de salvar
Aluno aluno = new Aluno();
String stringComADataQueUsuarioInformou = campoDeTextoDaData.getText();
aluno.dataMatricula = LocalDate.parse(stringComADataQueUsuarioInformou, DateTimeFormatter.ofPattern("dd/MM/yyyy"));
Não é, é um livro bem simples só sobre as novidades do Java 8, pelos próprios autores da casa do código (acho que é do Paulo Silveira).
Eu nunca li os livros do Deitel, mas dizem que são muito bons. O do Deitel, em contrapartida, provavelmente aborda tudo de Java Standard Edition 8 (tudo do 7 + novidades do 8).