Parse

4 respostas
G

tou tentando dividir datas-- em semana e fim de semana…

tenho as datas em tabelas e gostava de saber como faço para dividir para ficar do seguinte modo…

uma tabela como todos os valores e dois botões (semana e fdsemana)
ao clique num dos botões mostra os valores da semana.
ao clique no outro botão mostra os valores de fim de semana.

tive a ver a API do gregorian, do SimpleDateFormat, mas não consigo ver uma maneira se fazer o que quero… ainda por cima ao tentar “parsear” uma data ele diz que não consegue.

public void data(Event event) {

SimpleDateFormat sdf = new SimpleDateFormat(dd/MM/yyyy);

Date data = new Date();

try {

data = sdf.parse(25-07-2004);

System.out.println("domingo: " + data.getDay());

} catch (ParseException e) {

e.printStackTrace();}

try {

data = sdf.parse(26-07-2004);

System.out.println(segunda feira + data.getDay());

} catch (ParseException e) {

e.printStackTrace();}

} este codigo era só para saber o que ele retorna

keria mesmo saber o pq deste erro.

4 Respostas

G

em relação a um dos erros já o resolvi. em vez de “-” nas data coloca-se “/”

em relação á divisão de datas … se eu fizer um if do tipo

public void onclickfds(Event event){

SimpleDateFormat sdf = new SimpleDateFormat(dd/MM/yyyy);

Date data = new Date();

data = sdf.parse( que coloco aqui?? );

if (data == 0 && data == 6) { // porque não dá??
… codigo de fdsemana
}

public void onclicksem(Event event){

SimpleDateFormat sdf = new SimpleDateFormat(dd/MM/yyyy);

Date data = new Date();

data = sdf.parse( que coloco aqui?? );
if (data >0 && data < 6) {	 codigo de semana

}
leonardom

Gina, pelo que entendi vc quer pegar o dia da semana, então use o método get da classe Calendar. Isso ficaria mais ou menos assim:

public void onclickfds(Event event){

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date data = new Date();
    data = sdf.parse( que coloco aqui?? );
    Calendar c = Calendar.getInstance();
    c.setTime(data);

    if (c.get(Calendar.DAY_OF_WEEK) == 0 &&  c.get(Calendar.DAY_OF_WEEK) == 6) {
        ... codigo de fdsemana
}

Bom, estou meio dormindo ainda, mas acho que eh isso ai. . .

G

oi,obrigada pela resposta tão rápida :smiley:
só tenho um problema.
Experimentei o que deste… não tenho erros e tudo mais, mas tb não faz o que quero… :shock:

Este é o codigo que tenho para o click em Semana e é em todo semelhante ao da semana( só muda o conteudo do if)

public void onclicksem(Event event) {

int estado = ESTADO_SEMANA;
String texto = “”;

SimpleDateFormat sdf = new SimpleDateFormat(dd/MM/yyyy);

Date data = new Date();

try {

[size=12][color=darkred]data = sdf.parse(texto);[/color][/size]   [color="#444444"]não sei o que colocar dentro , coloquei texto mas não tenho a certeza[/color]	

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Calendar c = Calendar.getInstance();

c.setTime(data);

if (c.get(Calendar.DAY_OF_WEEK) > 0 && c.get(Calendar.DAY_OF_WEEK) < 6) {

IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
IPortalComponentResponse response = (IPortalComponentResponse)this.getResponse();

/* Cria colunas da tabela */	

Vector vColunas = new Vector();		

vColunas.setSize(20);				

vColunas.add(0,Data de Saída);

vColunas.add(1,Hora de Saída);	

vColunas.add(2,Origem/Destino);		

vColunas.add(3,Operadora);

vColunas.add(4,Valor Monetário);
Vector vData = new Vector(); // vDados

try{

int i=0;

int lInf = 1;

int lSup = 1;

String linha = “”;

String sToken = null;
StringTokenizer st = new StringTokenizer(linha,";");

Vector vLinha = new Vector();				

while (st.hasMoreTokens()){

i++;

if (i >=lInf && i <= lSup){

sToken = st.nextToken();

if ((i - lInf) == 0)

vLinha.add(0,sToken);

if ((i - lInf) == 1)

vLinha.add(1,sToken);

if ((i - lInf) == 2)

vLinha.add(2,sToken);

if ((i - lInf) == 3)

vLinha.add(3,sToken);

if ((i - lInf) == 4)

vLinha.add(4,sToken);
System.out.println(sToken);
 texto += sToken +"
";

if (i == lSup){

vData.add(vLinha);	

lInf += 6;

lSup += 6;

}}else					

st.nextToken();}

}catch (Exception d) {}
DefaultTableViewModel dtvm = new DefaultTableViewModel(vData,vColunas);				

TableView tabResultado = new TableView(tabResultado);tabResultado.setModel(dtvm);	

tabResultado.setHeaderVisible(false);

tabResultado.setDesign(TableViewDesign.ALTERNATING);

tabResultado.setNavigationMode(TableNavigationMode.BYPAGE);	

tabResultado.setOnNavigate(onNavigation);		

tabResultado.setVisibleRowCount(5);			

tabResultado.setSelectionMode(TableSelectionMode.NONE);tabResultado.getColumn(Data de Saída).setType(TableColumnType.USER);	

tabResultado.getColumn(Hora de Saída).setType(TableColumnType.USER);		

tabResultado.getColumn(Origem/Destino).setType(TableColumnType.USER);		

tabResultado.getColumn(Operadora).setType(TableColumnType.USER);

tabResultado.getColumn(Valor Monetário).setType(TableColumnType.USER);
if(!"".equals(this.visibleRow)){

tabResultado.setVisibleFirstRow(new Integer(this.visibleRow).intValue()); }

grid.addComponent(2,1,tabResultado);

te.setText(texto);

Button fds = new Button(fds);

fds.setText(Fim de semana);

fds.setWidth(100);

fds.setTooltip(Clique para saber as contas do fim de semana);

fds.setDesign(ButtonDesign.EMPHASIZED);

fds.setOnClick(onclickfds);

grid.addComponent(3, 1, fds);
System.out.println(estado);

response.write(semana);

this.getSessionVariable();

}
}

leonardom

Você quer pegar o dia da semana da data atual, é isso? Porque se for não presisa desta para do código:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date data = new Date();
try {
data = sdf.parse(texto); não sei o que colocar dentro , coloquei texto mas não tenho a certeza....
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar c = Calendar.getInstance();
c.setTime(data);

No luga disso vc colocaria apenas:

Calendar c = Calendar.getInstance();
Criado 26 de julho de 2004
Ultima resposta 26 de jul. de 2004
Respostas 4
Participantes 2