Galeracomo eu faco pra contar apenas os dias uteis entre determinadas datas??? eu estava pensando em ir iterando as datas e dar um toSring nela e verificar qual o dia da semana que representa aquele dia… mas eu gostaria de saber se ha um algoritimo melhor, pq dessa forma eh algo bem na ‘Gambiarra’.
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("pt", "BR"));
if (df.getDay() == 0) or (df.getDay() == 6)
System.out.println("Fim de semana");
o codigo q eu te passei é para pegar o ultimo dia util.;… ai é só modificar ao seu gosto…
Henrique
B
bbviana
Nao sei se é o seu caso, mas tbm há os feriados.
T
thingol
java-lee:
Galeracomo eu faco pra contar apenas os dias uteis entre determinadas datas??? eu estava pensando em ir iterando as datas e dar um toSring nela e verificar qual o dia da semana que representa aquele dia… mas eu gostaria de saber se ha um algoritimo melhor, pq dessa forma eh algo bem na ‘Gambiarra’.
Brigadu!!!
Obtenha a diferença entre as datas em dias corridos;
Veja quais os feriados que existem entre essas duas datas;
Também é necessário saber quantos sábados e domingos existem entre essas duas datas. Note que alguns feriados caem em sábados e domingos.
Alguém deve ter feito isso já. Veja se o BrazilUtils não tem algo parecido.
J
java-lee
Vlw galera ja consegui, depois eu adiciono no meu metodo os feriados, eh que eu to com mmuuuitoa pressa ( Tanta pressa q usei athe metodo deprecated )
Vopu postar aki o codigo da minha classe pra quem quiser aproveitar:
publicstaticDatestringToDate(StringstringDate){Datedate=null;try{SimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy",newLocale("pt_BR"));date=sdf.parse(stringDate);}catch(ParseExceptione){e.printStackTrace();}returndate;}publicstaticintdeductDates(DateinitialDate,DatefinalDate){if(initialDate==null||finalDate==null){return0;}intdays=(int)((finalDate.getTime()-initialDate.getTime())/(24*60*60*1000));return(days>0?days:0);}publicstaticStringdateToString(Datedate){SimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy",newLocale("pt_BR"));StringdateFormated=sdf.format(date);returndateFormated;}publicstaticDateclearHour(Datedate){return(stringToDate(dateToString(date)));}publicstaticintgetWorkingDays(DateinitialDate,DatefinalDate){intworkingDays=0;inttotalDays=deductDates(initialDate,finalDate);//tah eu sei que getDay, getYar e getMonth sao deprecated, eu coloquei so pra teste.Calendarcalendar=newGregorianCalendar(finalDate.getYear(),finalDate.getMonth(),finalDate.getDay());for(inti=0;i<=totalDays;i++){if(!(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)&&!(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)){workingDays++;}calendar.add(Calendar.DATE,1);}returnworkingDays;}
'e isso....
vlw pessoal!!
I
igor.cardoso
java-lee:
Vlw galera ja consegui, depois eu adiciono no meu metodo os feriados, eh que eu to com mmuuuitoa pressa ( Tanta pressa q usei athe metodo deprecated )
Java-Lee obrigado pelo codigo... está sendo util em uma aplicação que estou fazendo. porem foi necessario fazer algumas correções no metodo getWorkingDays estou postando a modificação que fiz, o resto ficou igual!
abraço!
publicstaticintgetWorkingDays(DateinitialDate,DatefinalDate){intworkingDays=0;inttotalDays=deductDates(initialDate,finalDate);Calendarcalendar=newGregorianCalendar();//Setando o calendar com a Data Inicialcalendar.setTime(initialDate);for(inti=0;i<=totalDays;i++){if(!(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)&&!(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)){workingDays++;}calendar.add(Calendar.DATE,1);}returnworkingDays;}
Obrigado! estou com o problema dos feriados tambem, assim que solucionar posto para vocês!
abraço!