Gostaria de saber como que eu faço para que ao passar do dia 31/02/2017 ele irá pata o dia 01/02/2017 e assim por diante, estou com uma logica montada aqui num método static mas não estou obtendo sucesso nisso, sera que alguem pode me ajudar?
public static List teste(Date dataInicial, Integer periodo, Integer cargaHorariaTotal, Integer cargaHorariaDia) throws ParseException {
List<PeriodoGrade>listaPeriodoGrade=newArrayList<PeriodoGrade>();SimpleDateFormatsimpleDateFormatSemHora=newSimpleDateFormat("dd/mm/yyyy");SimpleDateFormatsimpleDateFormatComHora=newSimpleDateFormat("dd/MM/yyyy HH:mm:ss");Calendarcalendar=Calendar.getInstance();IntegerdiaSoma=0;for(;cargaHorariaTotal>0;){calendar.setTime(dataInicial);calendar.add(Calendar.DATE,diaSoma);// TODO ACERTAR MES// - eu criei uma data base para calcular as outras datas, ela nao// tem a horaStringdataBase=simpleDateFormatSemHora.format(calendar.getTime());// - calcular a data inicial contenando com hora, usando a data baseStringhorarioManha="08";StringhorarioTarde="14";StringhorarioNoite="18";StringhorarioInicial=newString();if(periodo==0){horarioInicial=horarioManha;}elseif(periodo==1){horarioInicial=horarioTarde;}elseif(periodo==2){horarioInicial=horarioNoite;}StringdataInicialString=dataBase+" "+horarioInicial+":00:00";DatedataInicialCalculada=simpleDateFormatComHora.parse(dataInicialString);// - calcular a data final contenando com hora, usando a data baseIntegerhoraFinal=0;if(cargaHorariaTotal<cargaHorariaDia){horaFinal=Integer.parseInt(horarioInicial)+cargaHorariaTotal;}else{horaFinal=Integer.parseInt(horarioInicial)+cargaHorariaDia;}StringdataFinalString=dataBase+" "+horaFinal+":00:00";DatedataFinalCalculada=simpleDateFormatComHora.parse(dataFinalString);// - setando os valoresPeriodoGradeperiodoGrade=newPeriodoGrade();periodoGrade.setDataInicial(dataInicialCalculada);periodoGrade.setDataFinal(dataFinalCalculada);listaPeriodoGrade.add(periodoGrade);cargaHorariaTotal-=cargaHorariaDia;diaSoma++;}returnlistaPeriodoGrade;}
}
V
Viniciuspascucci
List<PeriodoGrade>listaPeriodoGrade=newArrayList<PeriodoGrade>();SimpleDateFormatsimpleDateFormatSemHora=newSimpleDateFormat("dd/mm/yyyy");SimpleDateFormatsimpleDateFormatComHora=newSimpleDateFormat("dd/MM/yyyy HH:mm:ss");Calendarcalendar=Calendar.getInstance();IntegerdiaSoma=0;for(;cargaHorarioTotal>0😉{calendar.setTime(dataInicial);calendar.add(Calendar.DATE,diaSoma);//TODO ACERTAR MEScalendar.add(Calendar.DATE,+1);// - eu criei uma data base para calcular as outras datas, ela nao tem a horaStringdataBase=simpleDateFormatSemHora.format(calendar.getTime());// - calcular a data inicial contenando com hora, usando a data baseStringhorarioManha="08";StringhorarioTarde="14";StringhorarioNoite="18";StringhorarioInicial=newString();if(periodo==1){horarioInicial=horarioManha;}elseif(periodo==2){horarioInicial=horarioTarde;}elseif(periodo==3){horarioInicial=horarioNoite;}StringdataInicialString=dataBase+" "+horarioInicial+":00:00";DatedataInicialCalculada=simpleDateFormatComHora.parse(dataInicialString);// - calcular a data final contenando com hora, usando a data baseIntegerhoraFinal=0;if(cargaHorarioTotal<cargaHorarioDia){horaFinal=Integer.parseInt(horarioInicial)+cargaHorarioTotal;}else{horaFinal=Integer.parseInt(horarioInicial)+cargaHorarioDia;}StringdataFinalString=dataBase+" "+horaFinal+":00:00";DatedataFinalCalculada=simpleDateFormatComHora.parse(dataFinalString);// - setando os valoresPeriodoGradeperiodoGrade=newPeriodoGrade();periodoGrade.setDataInicial(dataInicialCalculada);periodoGrade.setDataFinal(dataFinalCalculada);listaPeriodoGrade.add(periodoGrade);cargaHorarioTotal-=cargaHorarioDia;diaSoma++;}returnlistaPeriodoGrade;}
o Códio é esse
I
Igor_Lisboa
@Viniciuspascucci , eu tenho exatamente esse código, o que vc quer é tipo 2017-01-10 + 3 dias = 2017-01-13 ?
Se sim, te quando hoje a noite, pois não estou com ele aqui.
V
Viniciuspascucci
Sim man,é isso mesmo, pode me ajudar?
J
Jonathan_Medeiros
// Usuário informa uma dataDatedataDoUsuario=newDate();// Através do Calendar, trabalhamos a data informada e adicionamos 1 dia nelaCalendarc=Calendar.getInstance();c.setTime(dataDoUsuario);c.add(Calendar.DATE,+1);// Obtemos a data alteradadataDoUsuario=c.getTime();
publicStringSetData(Stringdata,intdias){StringDataAlterada="";StringFormatoDaData="dd/MM/yyyy";try{SimpleDateFormatformat=newSimpleDateFormat(FormatoDaData);java.sql.DateData=newjava.sql.Date(format.parse(data).getTime());Calendarob=Calendar.getInstance();ob.setTime(Data);ob.add(Calendar.DATE,+dias);SimpleDateFormatsimpleDateFormat=newSimpleDateFormat(FormatoDaData);DataAlterada=simpleDateFormat.format(ob.getTime());}catch(Exceptione){return"Data Inválida";//caso passe a data fora do formato}returnDataAlterada;}