bsr Posted April 10, 2009 at 04:52 PM Report #256191 Posted April 10, 2009 at 04:52 PM Ola. Qual é o formato de introução de uma data pertencente a esta classe (quero fazer uma instancia desta classe), ja pus 2009-05-10, ja pus 2009/05/10 e da-me sempre o erro found int but expected java.util.GregorianCalendar. Sei que esta duvida deve ser basica mas agradecia que me ajudassem.
Baderous Posted April 10, 2009 at 05:18 PM Report #256200 Posted April 10, 2009 at 05:18 PM Penso que tens de indicar os campos um a um. GregorianCalendar data = new GregorianCalendar(); data.set(GregorianCalendar.YEAR,2009); data.set(GregorianCalender.MONTH,05); data.set(GregorianCalendar.DAY_OF_MONTH,10);
Knitter Posted April 10, 2009 at 05:24 PM Report #256201 Posted April 10, 2009 at 05:24 PM Estás a tentar introduzir esse valor onde? Dependendo de como estás a criar o código podes ter já a data que precisas, o calendário quando é criado usando o construtor sem argumentos fica com a data do sistema na altura da instanciação, ou podes usar um dos vários construtores que ter permite especificar os valores, não precisas criar o calendário e depois ir campo a campo colocar o valor. Se pretende alterar a data de um calendário que já está criado, então podes usar o método que o Baderous te indicou, embora possas também usar o setDate que aceita o valor da data como um long.
bsr Posted April 10, 2009 at 05:32 PM Author Report #256203 Posted April 10, 2009 at 05:32 PM Eu tenho uma classe que precisa de usar data, preciso registar uma data inicial por isso crei uma variavel de instancia "private GregorianCalendar dataInicio;" A ideia é ao criar uma instancia da classe principal lhe fornecer a dataInicio, so que, como ja referi ja tentei por 2009/05/10 e também 2009-05-10 e da-me sempre o erro que referi. Deve haver uma maneira de alterar tudo junto, penso eu. Eu sei que se calhar dava para criar um metodo que recebe-se como parametros o dia, mes e ano e depois usaria o metodo da api "void set(int campo, int valor)", mas a ideia é dar uma data e alterar logo. Não sei se o que sugeri funciona.
bsr Posted April 10, 2009 at 05:34 PM Author Report #256205 Posted April 10, 2009 at 05:34 PM As variaveis de instancia e os contrutores são os seguintes: import java.util.GregorianCalendar; public class ContaPrazo { /** Variaveis de instancia (sempre privadas) */ private String codigo; private String titular; private int prazo; private double taxa; // taxa para o prazo private double capital; private GregorianCalendar dataInicio; private GregorianCalendar dataJuros; /** Construtor Vazio - Redefine construtor por omissão*/ public ContaPrazo(){ codigo = ""; titular = ""; prazo = 0; taxa = 0.0; capital = 0.0; } /** Contrutor das partes*/ public ContaPrazo(String tit, String cod, int dias, double tax, double montante, GregorianCalendar dInicio, GregorianCalendar dJuros){ titular = tit; codigo = cod; prazo = dias; taxa = tax; capital = montante; dataInicio = new GregorianCalendar(); dataJuros = (GregorianCalendar) dataInicio.clone(); dataJuros.add(GregorianCalendar.DAY_OF_MONTH, prazo); } /** Construtor de copia */ public ContaPrazo(ContaPrazo cont){ titular = cont.getTitular(); codigo = cont.getCodigo(); prazo = cont.getPrazo(); taxa = cont.getTaxa(); capital = cont.getCapital(); dataInicio = cont.getDataInicio(); dataJuros = cont.getDataJuros(); } Da maneira que o codigo foi feito ao criar uma instancia da ContaPrazo tenho de inserir a dataInicio e dataJuros, ja experimentei os formatos que referi e da sempre o erro que também ja referi.
Knitter Posted April 10, 2009 at 05:51 PM Report #256210 Posted April 10, 2009 at 05:51 PM Formatos que indicaste? Não estou a perceber bem o que estás a passar para o calendário. Pegando no teu código, iria construir uma ContaPrazo da seguinte forma: ContaPrazo cp = new ContaPrazo("Knitter", "COD1", 20, 0.4, 5000, new GregorianCalendar(2009, 4, 10), new GregorianCalendar(2009, 6, 10) ; Os valores foram meramente aleatórios, e podes construir as instâncias de GregorianCalendar noutro lado sem ser directamente na chamada ao construtor da classe ContaPrazo, como fiz. Já agora, redefinir o construtor por omissão para fazer o que ele já faz é algo inútil, é imposição ou escolheste fazer assim? Mais simples que fazer um clone será mesmo instanciares um calendário novo, pelo que está no código, o clone não te está a servir para nada. Como nota final, no construtor de cópia não precisas usar os métodos get se esses não fizerem validações ou outras operações importantes.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now