Operação com Datas em C (Lógica)

1. Operação com Datas em C (Lógica)

Lelre Ferreira da Silva
lelreincpp

(usa Ubuntu)

Enviado em 10/05/2017 - 19:47h

Saudações programadores de plantão, estou com uma atividade no qual o usuário insere uma data de locação e ao final o programa exibe: data da locação, data prevista de devolução e caso ocorra multa de atraso.

A minha dúvida maior é como irei lidar com os meses caso os dias excedam o mês, supondo que eu faça o aluguel no dia 30/04/2017 e venha a devolver daqui 5 dias... Pensei em primeira lugar em adicionar um valor de 5 há variável dia, porém eu passaria a ter uma variável inteira com valor de 35, ficaria então, 35/04/2017.

Eu poderia subtrair por exemplo: 30 - 35 = 5, mas em outros casos não adiantaria, eu teria outro problema, supondo que o produto fosse alugado no dia 29 + 5 = 34, então faço igual acima, 29 - 34 = 5, mas se conferirmos no calendário na verdade daria no dia três.

Não estou conseguindo uma lógica matemática para este problema citado por último e o problema do mês.

OBS: Não posso fazer uso da biblioteca

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>

int main(){
setlocale(LC_ALL, "portuguese");
char usuario[5], livro[30];
int dia, mes, ano;

printf("Insira o nome do livro: ");
scanf("%s", &livro);
printf("Insira o tipo do usuário: ");
scanf("%s", &usuario);
printf("Insira a data do emprestimo: ");
scanf("%d%*c%d*c%d", &dia, &mes, &ano);

if (ano % 4 == 0 && (ano % 400 == 0 || ano % 100 != 0))
{
if((usuario[0]=='A')&&(usuario[1]=='L')&&(usuario[2]=='U'))
{
}
if((usuario[0]=='P')&&(usuario[0]=='R')&&(usuario[0]=='O'))
{
}

else

if((usuario[0]=='A')&&(usuario[1]=='L')&&(usuario[2]=='U'))
{
}
if((usuario[0]=='P')&&(usuario[0]=='R')&&(usuario[0]=='O'))
{
}
}


  


2. Re: Operação com Datas em C (Lógica)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 10/05/2017 - 20:21h

Use conversão de/para uma base de tempo comum, como time_t (usando as funções padronizadas mktime() e localtime()) ou para dia juliano (veja sobre “Julian Day” na Wikipedia).


3. Re: Operação com Datas em C (Lógica)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 10/05/2017 - 20:23h

Oops... Só reparei depois que você não pode usar a biblioteca. Use dia juliano, então.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts