Dúvida sobre compra parcelada
Pessoal estou com uma dúvida, eu sei fazer no caso o vencimento do produto e tal. Mais quando parte para compra parcelada, ainda não raciocinei bem ainda para produzir um algoritmo eficiente, obs: Estou criando um gestor financeiro pessoal.
Raniel Gomes
Curtidas 0
Respostas
Joel Rodrigues
22/06/2013
Não entendi bem qual é sua dificuldade.
GOSTEI 0
Raniel Gomes
22/06/2013
Tipo assim, tenho uma divida que se vence nos dia 20 de cada mês, e ela é parcelada em 3x quero que ele mostre a data de vencimento dá segunda parcela após o vencimento da primeira parcela. E assim por diante.
GOSTEI 0
Joel Rodrigues
22/06/2013
Bem, definido o dia do vencimento da primeira parcela, você conta 30 dias (mês fiscal) a partir dela para encontrar o vencimento da segunda e assim por diante. Caso caia em um final de semana ou feriado, você passa para a próxima data válida.
Outra forma seria fixar o dia do vencimento. Se será todo dia 20 de cada mês, basta verificar se o dia 20 não cairá em um fim de semana ou feriado e proceder como dito acima.
Como você pretende calcular os vencimentos das próximas parcelas? Em dias fixos ou 30 dias após a anterior?
Outra forma seria fixar o dia do vencimento. Se será todo dia 20 de cada mês, basta verificar se o dia 20 não cairá em um fim de semana ou feriado e proceder como dito acima.
Como você pretende calcular os vencimentos das próximas parcelas? Em dias fixos ou 30 dias após a anterior?
GOSTEI 0
Raniel Gomes
22/06/2013
Poderia ser em dias fixos mesmo de 30 dias.
GOSTEI 0
Joel Rodrigues
22/06/2013
Cara, não entendi =/
Você meio que misturou os dois aí.
Você meio que misturou os dois aí.
GOSTEI 0
Raniel Gomes
22/06/2013
Olha amigo queria só um exemplo, que eu possa calcular a data do vencimento parcelado em meses. Decrementando os meses do pagamento após o vencimento. Pode ser qualquer exemplo e depois vou melhorando o mesmo, só estou meio desnorteado no momento na regra de negócio.
GOSTEI 0
Joel Rodrigues
22/06/2013
Bom, eu não tenho o Delphi aqui, mas a ideia eu já passei.
Se você tem a data da primeira parcela e a quantidade de parcelas, basta fazer um loop com N-1 iterações, onde N é o número de parcelas. Em cada iteração você instancia um novo DateTime, aumentando o mês (a partir da data anterior) e mantendo fixo o dia.
Se você tem a data da primeira parcela e a quantidade de parcelas, basta fazer um loop com N-1 iterações, onde N é o número de parcelas. Em cada iteração você instancia um novo DateTime, aumentando o mês (a partir da data anterior) e mantendo fixo o dia.
GOSTEI 0
Raniel Gomes
22/06/2013
Delphi? cara estou fazendo em C#
GOSTEI 0
Joel Rodrigues
22/06/2013
Tanto faz, a ideia é a mesma e o código ainda mais fácil, pois a classe DateTime possui métodos que facilitam esse cálculo, como o AddDays(30).
GOSTEI 0
Raniel Gomes
22/06/2013
Obrigado amigo pela dica.
GOSTEI 0
Joel Rodrigues
22/06/2013
Daqui a pouco eu vou pegar o notebook, aí faço um exemplo rapidão e posto aqui.
Abraço.
Abraço.
GOSTEI 0
Joel Rodrigues
22/06/2013
Fiz uma pequena aplicação Console, veja se dá pra entender:
Qualquer dúvida, é só falar.
class Program { static void Main(string[] args) { int parcelas = 3; //quantidade de parcelas DateTime dataParcela = DateTime.Today; //data da primeira parcela (fixei como hoje) Console.WriteLine(dataParcela.ToString("dd/MM/yyyy")); //imprime a primeira parcela for (int i = 1; i < parcelas; i++) //faz um laço a menos que o número de parcelas { dataParcela = getProximaData(dataParcela, 30); Console.WriteLine(dataParcela.ToString("dd/MM/yyyy")); } Console.Read(); } private static DateTime getProximaData(DateTime data, int dias) { DateTime proximaData = data.AddDays(dias); bool ehValida = false; while (!ehValida) { if (proximaData.DayOfWeek == DayOfWeek.Sunday)//se cair em um domingo, adiciona um dia { proximaData = proximaData.AddDays(1); } else { ehValida = true; } } return proximaData; } }
Qualquer dúvida, é só falar.
GOSTEI 0
Raniel Gomes
22/06/2013
Obrigado pelo exemplo vou testar aqui, abraço.
GOSTEI 0