import java.util.Date;
import java.text.SimpleDateFormat;
public class data
{
String mes,dia,ano,dia_semana,hora;
SimpleDateFormat horaformatada=new SimpleDateFormat ("HH:mm:ss");
public void le_hora(){
Date horaAtual=new Date();
hora= horaformatada.format(horaAtual);
}
public void le_data()
{
Date data=new Date();
//mes=""+data.getMonth();
dia=""+data.getDay();
ano=""+(1900 + data.getYear());
//dia_semana=""+data.getDay();
switch(data.getDay())
{
case 0:dia_semana="Domingo";break;
case 1:dia_semana="Segunda";break;
case 2:dia_semana="Terça";break;
case 3:dia_semana="Quarta";break;
case 4:dia_semana="Quinta";break;
case 5:dia_semana="Sexta";break;
case 6:dia_semana="Sábado";break;
}
switch (data.getMonth())
{
case 0:mes="Janeiro";break;
case 1:mes="Fevereiro";break;
case 2:mes="Março";break;
case 3:mes="Abril";break;
case 4:mes="Maio";break;
case 5:mes="Junho";break;
case 6:mes="Julho";break;
case 7:mes="Agosto";break;
case 8:mes="Setembro";break;
case 9:mes="Outubro";break;
case 10:mes="Novembro";break;
case 11:mes="Dezembro";break;
}
}
}
Acho que você tem vários problemas conceituais no seu exemplo…
Veja só.:
O seu objeto “c” do tipo Calendar na classe JCData só vai ser criado uma vez, durante a carga da classe JCData. É isso mesmo que você quer? E se o dia virar e alguém ainda estiver usando o sistema?
Qual o propósito da classe JCData? Ser usada apenas como um “repositório” para métodos estáticos? Se sim, porque compartilhar um mesmo objeto estático entre métodos estáticos?
Quanto a sua dúvida, para encadear métodos, vc precisa retornar um objeto em getDiaSemana, o que acaba não fazendo sentido, visto que seu dia da semana é um int.
Um alternativa para fazer algo do tipo que você quer é essa aqui:
[code]import java.util.Calendar;
public class JCData {
public static DiaSemana getDiaSemana() {
return new DiaSemana( Calendar.getInstance().get( Calendar.DAY_OF_WEEK ) );
}
public static class DiaSemana {
private int dia;
public DiaSemana( int dia ) {
this.dia = dia;
}
public int getDia() {
return dia;
}
public boolean isDiaUtil() {
if ( dia > 0 && dia < 7 )
return true;
return false;
}
}
// teste...
public static void main( String[] args ) {
JCData.DiaSemana diaSemana = JCData.getDiaSemana();
System.out.println( "Dia: " + diaSemana.getDia() );
System.out.println( "Dia Útil: " + diaSemana.isDiaUtil() );
// encadeamento...
System.out.println( "Dia Útil: " + JCData.getDiaSemana().isDiaUtil() );
}
}[/code]
Você pode tranquilamento definir a classe DiaSemana como uma classe normal ao invés de uma classe estática como eu fiz.
[]'s
Oi Anime. Hehehe, posso estar muito errado, mas acho que foi vc que não entendeu
Ele não está preocupado em como exibir se o dia é útil ou não. Ele queria saber como encadear métodos. A partir do retorno de um método, chamar outro método.
Só dei uns toques quanto ao que ele estava fazendo.
Oi Anime. Hehehe, posso estar muito errado, mas acho que foi vc que não entendeu
Ele não está preocupado em como exibir se o dia é útil ou não. Ele queria saber como encadear métodos. A partir do retorno de um método, chamar outro método.
Só dei uns toques quanto ao que ele estava fazendo.
E o que eu realmente queria era isso msm, encadeamento de métodos, a partir do retorno de um ja chamar outro método…
bom davidbuzatto, minha classe fico assim entao… é correto fazer dessa forma, se tiver algo errado me fale, por gentileza…
package br.com.util.data;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class JCData {
public static DiaSemana getDiaSemana() {
return new DiaSemana( Calendar.getInstance().get( Calendar.DAY_OF_WEEK ) );
}
public static class DiaSemana {
private int dia;
public DiaSemana( int dia ) {
this.dia = dia;
}
public int getDia() {
return dia;
}
public boolean isDiaUtil() {
if ((dia == 0) || (dia == 7)) {
return false;
}
return true;
}
}
public static Data getData() {
return new Data(Calendar.getInstance().getTime());
}
public static class Data {
public static final int DD_MM_YYYY = 1;
public static final int DD_MM_YY = 2;
private Date calendar;
private SimpleDateFormat sdf = null;
public Data(Date time) {
calendar = time;
}
public String toFormat(int i) {
if (i < 0 || i > 2)
return i + " - Formato Inválido ";
switch (i) {
case 1: { sdf = new SimpleDateFormat("dd/MM/yyyy"); break; }
case 2: { sdf = new SimpleDateFormat("dd/MM/yy"); break; }
}
return sdf.format(calendar.getTime());
}
}
}
Ok davidbuzatto, vou seguir as dicas q vc me falou…
mas so uma dúvida msm…
a minha intenção desde o principio era de fazer o aproveitamento das classes existentes e adicionando mais coisas.
Por exemplo
Pretendia cria uma classe JCTextField (JC de JavaCustom rs) que herdasse de JTextField e adicionando alguns métodos que facilitariam algumas coisas já.
Por Exemplo:
Ao cria um objeto JCTextField ja poderia criá-lo com uma mascara default, ou um label ao lado identificando-o, ou o posicionamento no frame ou ja definir que o textfiel seria UPPER_CASE, lower case e essas coisas nesse genero. E na classe JCData a intenção é a msm.
e sem ficar chamando outros métodos para isso, pra ganhar um certo “tempo” com isso, se é que seria interessante fazer isso.
mas me diga, é legal, interessante fazer desta forma?