Olá irmãoS! Ainda não sei usar a classe de data ! gostaria de aprender com esse exemplo simples… tenhu uma data de pagamento… e gostaria de comparalá com data de venciemnto… sendo a data de pagamento…a atual do sistema!!! por favor…me ajudem desde jah agradeço!!!
Você pode começar lendo a documentação da classe Calendar.
[code]//assim date1.getTimeInMillis() < new GregorianCalendar().getTimeInMillis(); //ou date1.getTime() < new Date().getTime() //ou colocar herdar uma delas e colocar a compração na sua classe // ou a melhor opção estudar JODA a api de data para java muito boa[/code]
Fala arthur_roots, Segue um exemplo: //... private Calendar datapagamento; Calendar hoje = Calendar.getInstance(); if(hoje.before(datapagamento)){ return "data de hoje anterior que a data de pagamento"; }else{ return "data de hoje maior que a data de pagamento, ou seja, o pagamento está atrasado"; } //...O Date encapsula a data em milissegundos à partir de 1970, ele virá um long… sua manipulação é muito trabalhosa, precisa dividir esses milissegundos. Estou fazendo o curso fj-16 da Caelum que trata um do uso das datas, eles estão um usando um biblioteca chamada JodaTime que está bem superior…vale a pena conferir! abraço
tem como vc enviar pra mim essa apostila não estou consiguindo fazer o download!! se puder fazer esse favor…!!!
Calendar hoje = Calendar.getInstance(); datadePagamento=??????? if (hoje.before(datadePagamento)) { System.out.println("data de hoje anterior que a data de pagamento"); } else { System.out.println("data de hoje maior que a data de pagamento, ou seja, o pagamento está atrasado"); } essa é minha duvida agora como colokar um valor !!!
[quote=arthur_roots]tem como vc enviar pra mim essa apostila não estou consiguindo fazer o download!! se puder fazer esse favor…!!![/quote] Arthur, nessa apostila não trata do JodaTime, na verdade não aprenderemos nesse curso, usaremos somente o Calendar… Ainda não usei o JodaTime, mas a professora disse que é muito simples =) creio que no guj deve haver tópicos sobre ele… Abraço
Hum intendi… Calendar hoje = Calendar.getInstance(); datadevencimento= if (hoje.before(datadePagamento)) { System.out.println("data de hoje anterior que a data de pagamento"); } else { System.out.println("data de hoje maior que a data de pagamento, ou seja, o pagamento está atrasado"); }como que eu vou colokar o valor da data de vencimento??? String? Date? Calendar…??? essa eh minha duvida agora… tipo qnd eu construo uma classe jah com o valor de vencimento!!! se puder me ajudar !
[quote=arthur_roots] Calendar hoje = Calendar.getInstance(); datadePagamento=??? if (hoje.before(datadePagamento)) { System.out.println(“data de hoje anterior que a data de pagamento”); } else { System.out.println(“data de hoje maior que a data de pagamento, ou seja, o pagamento está atrasado”); } essa é minha duvida agora como colokar um valor !!![/quote] Para colocar um valor você terá que trazer do banco, por exemplo. para testar você pode fazer assim: //... Calendar outradata = Calendar.getInstance();// pega hoje datadePagamento = outradata.add(Calendar.DAY, -2); //estou subtraindo dois dias //... Para recuperar do banco essa data você vai precisar executar sua consulta(select) colocar os valores em um javabean. abraço
[quote=arthur_roots]Hum intendi… Calendar hoje = Calendar.getInstance(); datadevencimento= if (hoje.before(datadePagamento)) { System.out.println("data de hoje anterior que a data de pagamento"); } else { System.out.println("data de hoje maior que a data de pagamento, ou seja, o pagamento está atrasado"); }como que eu vou colokar o valor da data de vencimento??? String? Date? Calendar…??? essa eh minha duvida agora… tipo qnd eu construo uma classe jah com o valor de vencimento!!! se puder me ajudar ! Opa, a datadePagamento tem que ser Calendar =) Calendar datadePagamento;abraço
então soh ki eh mais simples intende…tipo assim o cliente vai entrar com a data …] intendeu…eu num sei como ki eu vou fazer isso pra depois compara-lás… pois se a data de pagamento passar da data de vencimento eu vou ter ki colokar um juros em cima!!!
É mais fácil usar o Joda-Time do que usar a própria API do Java.
…pra o usar o SET do calendar??? datadeVencimento.set(2010,10,03); como será ki deve ser!
[quote=arthur_roots]…pra o usar o SET do calendar??? datadeVencimento.set(2010,10,03); como será ki deve ser![/quote] arthur, é isso mesmo! Só um detalhe muito importante, no Calendar mês começa com 0…é meio dificil de acreditar mas é assim… Ou seja, no exemplo acima que vc colocou o 10 na verdade está setando para mês de Novembro(11)… o recomendado é usar Calendar.OCTOBER e assim para todos os meses, ou se preferir, apenas coloque o datadeVencimento.set(2010,10 - 1,03)… Quanto a trazer a data da tela para o código tudo bem? abraço
Vlw brother… consegui mano…consegui mais agora …to fazendo outros exercicios espero que se eu encontrar um proximo obstaculo vcs …Me ajudem… DeSDE jah agradeço pela atenção e pela disposição o código final fikou assim !!! package livro; import java.util.Calendar; import java.util.Date; public class CreditCard { //Variaveis de instância: private String number; private String name; private String bank; private double balance; protected double juros = 0.02; protected double jurosAtraso = 0.1; private int limit; public Calendar datadeVencimento = Calendar.getInstance(); public Calendar datadePagamento = Calendar.getInstance(); //Construtor: CreditCard(String no, String nm, String bk, double bal, int lim, int ano, int mes, int dia) { number = no; name = nm; bank = bk; balance = bal; limit = lim; datadeVencimento.set(ano, mes, dia); } //Métodos de acesso: public String getNumber() { return number; } public String getName() { return name; } public String getBank() { return bank; } public double getBalance() { return balance; } public int getLimit() { return limit; } public Calendar getdataVenc() { return datadeVencimento; } //Métodos de modificação public void setNumber(String n) { this.number = n; } public void setName(String nome) { this.name = nome; } public void setBank(String bank) { this.bank = bank; } public void setBalance(Double bal) { this.balance = bal; } public void setLimit(int lim) { this.limit = lim; } public void setdataVenc(int ano, int mes, int dia) { this.datadeVencimento.set(ano, mes, dia); } //Métodos de ação: public boolean chargelt(double price) { //Debita if (price > 0 && price + balance < (double) limit) { System.out.println("O cliente " + this.getName() + " debitou o valor de R$:" + price); balance += price; System.out.println(); return true;//Debitado! } else { System.out.println("Operação não realizada!!!!"); System.out.println(); return false;//Neste não foi efetuada! } } public void makePayment(double payment) { if ((datadePagamento.before(datadeVencimento))) { if (payment > 0) { balance -= payment * jurosAtraso; } } else { if (payment > 0) { balance -= payment * juros; } } } public static void printCard(CreditCard c) {//Impri informações sobre o cartão int dia = c.datadeVencimento.get(Calendar.DATE); int mes = c.datadeVencimento.get(Calendar.MONTH); int ano = c.datadeVencimento.get(Calendar.YEAR); System.out.println("Number = " + c.getNumber()); System.out.println("Name = " + c.getName()); System.out.println("Bank = " + c.getBank()); System.out.println("Balance = " + c.getBalance()); System.out.println("Limit = " + c.getLimit()); System.out.println("Data de vencimento: " + dia + "/" + mes + "/" + ano); System.out.println(); } } package livro; import java.util.Calendar; public class Test { public static void main(String[] args) { CreditCard wallet[] = new CreditCard[10]; wallet[0] = new CreditCard("5391 0375 9387 5309", "John Bowman", "California Savings", 0.0, 2500, 2010, 02, 21); wallet[1] = new CreditCard("5391 0375 9387 5309", "John Bowman", "California Federal", 0.0, 3500, 2010, 03, 11); wallet[2] = new CreditCard("5391 0375 9387 5309", "John Bowman", "California Finance", 0.0, 5000, 2010, 03, 11); for (int i = 1; i <= 16; i++) { wallet[0].chargelt((double) i); wallet[1].chargelt(2.0 * i); //Conversão implícita wallet[2].chargelt((double) 3 * i);//conversão explicita } System.out.println("Card payments: "); for (int i = 0; i < 3; i++) { CreditCard.printCard(wallet[i]); while (wallet[i].getBalance() > 100.0) { wallet[i].makePayment(100.0); System.out.println("New balance =" + wallet[i].getBalance()); } System.out.println(); } }
Fala arthur, com que vc conseguiu! Tamos aí! Cara só reforçando aquele detalhe de fazer mês -1. Segue um código para ilustrar melhor isso, se vc quiser testar: [code]public class teste { public static void main(String[] args) { Calendar data = Calendar.getInstance(); //mês do calendar da data de hoje System.out.println(data.get(Calendar.MONTH)); //setei o mês para três data.set(Calendar.MONTH, 3); //confirma que o mês mudou System.out.println(data.get(Calendar.MONTH)); //compara o valor inteiro que representa o mês de março com o mês setado, que é 3 if(Calendar.MARCH == data.get(Calendar.MONTH)){ System.out.println("jóia, os int's batem"); }else{ //ele entra no else porque o int de março é 2 e mês setado é 3, ou seja, caos na terra... System.out.println("erro, o int que representa março é diferente de 3"); } //imprime mês de março como int = 2 System.out.println("março para o calendar "+Calendar.MARCH); }}[/code] Abraço
Agradecido ai…! obrigado pela atenção… tenhu um novo exercicio jah postei …se puder me ajudar! Agradeço! |