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
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


0