Matlab - Función CalculaDias

   
Vista:

Función CalculaDias

Publicado por X (1 intervención) el 11/09/2017 11:14:41
Buenas, tengo un ejercicio de Matlab que no sé como hacerlo. Lo he hecho de mil formas.

Escribir una la función en matlab [dias]=calculaDias(fini, ffin) que dados los vectores fini y ffin, que tiene el formato [dia mes], calcular el número de días que transcurren entre ambas fechas. Suponer que febrero es de 28 días y los demás meses de su duración normal.

Por ejemplo, entre [1 7] y [7 7] transcurren 7 días.

Por simplicidad, suponer que las fechas de entrada son siempre válidas y que fini es siempre anterior a ffin.

Pista: puede ser de ayuda definir un vector con el número de dias que tiene cada mes del año,

duracion = [31 28 31 30 31 30 31 31 30 31 30 31];

de forma que si luego leemos por ejemplo duracion(7) sabremos el número de dias que tiene el mes 7 (julio).


Y mi procedimiento es este (pero me da error):

function [dias] = calculaDias(fini,ffin)

duracion = [31 28 31 30 31 30 31 31 30 31 30 31];

for i = 1:length(duracion);
for j = 1:duracion

if ffin(2)-fini(2)==0
dias = ffin(1)-fini(1)+1;
end

if (duracion(ffini(i))>duracion(fini(i)))>=0

mes = ffin(i) - fini(i) + 1;
end

if (duracion(ffini(j))>duracion(fini(j)))>=0

dias = ffin(j) - fini(j) + 1;
end
end
end
end




Si me podéis ayudar, lo agradecería mucho.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH

Función CalculaDias

puedes hacer algo así :

1
2
3
4
5
6
7
8
9
function [dias] = calculaDias(fini,ffin)
duracion = [31 28 31 30 31 30 31 31 30 31 30 31];
dias=duracion(fini(2):ffin(2)-1);
if ~isempty(dias)
dias(1)=dias(1)-fini(1)+1;
dias=sum(dias)+ffin(1);
else
    dias=ffin(1)-fini(1)+1;
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad