Question

J'ai une liste des heures de début et de fin de session, au format suivant:

23/11/09 15:18:32, 23/11/09 15:18:40
23/11/09 15:20:02, 23/11/09 15:20:32
23/11/09 15:20:10, 23/11/09 15:20:40

C’est dans Excel pour le moment, commencez datetime dans une colonne et finissez datetime dans l’autre.

Ce que je veux faire, c’est un post-traitement sur ces données. Je ne sais pas encore quoi utiliser, que ce soit pour développer ma propre application ou simplement pour utiliser Excel, c'est là que j'espérais obtenir de l'aide.

En gros, ce que je veux faire, c’est travailler, disons, pour une période de temps x, disons pour simplifier, l’heure 15:00 - 16:00. Sur la base de ces sessions, je souhaite calculer le nombre de connexions simultanées au cours de cette heure.

Des suggestions d’idées, comment, quoi utiliser? exceller? vs2008?

Je pense que la meilleure chose à propos de le garder dans Excel est que je peux facilement produire des graphiques, etc ... et que j'ai toujours eu du mal à travailler avec des objets datetime dans vs.

Était-ce utile?

La solution

Je pense que ce n’est pas un problème facile du tout. Permettez-moi de reformuler votre problème: vous pouvez considérer chaque connexion comme un segment sur une ligne, avec une valeur de début et une valeur de fin. Ce que vous essayez de trouver est le plus grand sous-ensemble de segments ayant une intersection non nulle; le nombre d'éléments dans ce sous-ensemble est le nombre de connexions simultanées. Si vous parvenez à résoudre ce problème, trouver la réponse sur une période de temps limitée devrait être une tâche triviale (il suffit de "tronquer" chaque connexion pour que, si la valeur de début est antérieure au début de la période, la connexion démarre au début de la période).
Maintenant, la raison pour laquelle je pense que c'est difficile, c'est que si vous prenez trois segments, disons: 1h00 à 2h00, 1h00 à 13h15 et 13h45 à 2h00, les 3 se chevauchent, mais vous n'avez que 2 connexions simultanées. Donc, vérifier simplement combien de connexions se chevauchent chaque connexion ne sera pas suffisant, vous devrez réellement considérer comment les chevauchements se chevauchent, pour ainsi dire.
La plupart des choses peuvent être faites dans Excel, du moins si vous utilisez VBA, donc je ne pense pas que ce soit vraiment votre problème - le problème est l'algorithme lui-même.
Modifier : j'ai creusé rapidement et il semble que l'algorithme de Marzullo est proche de ce que vous essayez de faire. J'en creuserai davantage, mais cela pourrait vous donner un point de départ.
Modifier 2 Un " pas cher " Une façon d'obtenir une réponse / approximation décente serait de décomposer la période que vous envisagez en petits intervalles successifs (ex: pause d'une heure par segments de 5 minutes) et pour chaque segment, compter les connexions qui se chevauchent. Cela devrait être bien plus rapide que d'essayer explicitement d'identifier le segment où se croisent le plus grand nombre de segments!

Autres conseils

Je suppose qu’une méthode très inefficace consisterait à passer en revue la valeur initiale de l’appel, en vérifiant chaque valeur de fin d’appel EACH supérieure, en incrémentant le compteur s’il est supérieur (en cas d’appel simultané)

alors, à un moment donné, je pourrais dire le nombre de connexions simultanées ...

Je ne pense pas que cela m'aide tellement si je veux dire quelque chose comme combien de fois simultanés entre 14h00 et 15h00

ah

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top