Skip to content

Affichage étrange pour la durée de l'itinéraire #988

@vladmihaisima

Description

@vladmihaisima

Pour certains itinéraires, l'affichage suivant peut apparaître : "En voiture, le trajet de 459 km vous prendra 4 h et 60 min". Cela semble incorrect (car 60 minutes équivalent à une heure). La cause se trouve dans la fonction daysHoursMinutesFromSeconds - https://github.com/cartesapp/cartes/blob/master/app/RouteR%C3%A9sum%C3%A9.tsx#L107C14-L107C41, qui, si elle est appelée avec un nombre de secondes inférieur à une minute vers une heure (par exemple, 4 heures 59 minutes et 40 secondes), arrondit les "minutes".

Pour les très courts trajets, l'affichage suivant peut apparaître : "À pieds, le trajet de 40 m vous prendra 0 min". Cela semble également incorrect. La cause se trouve dans la même fonction.

Exemples numériques :

Comme la function n'est utilisé qu'à des fins de présentation, je suggère de corriger directement les cas particuliers, comme ci-dessous. D'autres solutions sont bien sûr possibles.

const daysHoursMinutesFromSeconds = (seconds) => {
	/* Cette fonction est utilisée pour afficher des informations approximatif lisible par l'utilisateur. */
	const secondsInDay = 24 * 60 * 60
	const days = Math.floor(seconds / secondsInDay)
	const rest = (seconds % secondsInDay) / (60 * 60)
	const hours = Math.floor(rest)
	var minutes = Math.round((rest - hours) * 60)
	if (days == 0 && hours == 0 && minutes == 0) minutes = 1;
	if (minutes == 60) minutes = 59;
	return [days, hours, minutes]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions