Calcular tiempo en segundos entre dos eventos

04/08/2009 - 22:54 por Gustavo | Informe spam
Hola que tal !

tengo lo siguiente, en una forma asp tengo varios controles, mi idea es
calcular el tiempo en el que un usuario realiza la acción click, es decir,
hay botones, linkbuttons y quiero calcular el tiempo en el que realiza una
acción y luego otra.

Inicio una variable DateTime timeCargaPrincipal cuando se carga la página
principal, luego en cada evento click tengo una variable también DateTime, y
revisando la documentación, uso TimeSpan:

DateTime timeCargaPrincipal, timeboton1, //variables globales
double segundostotales;

timeCargaPrincipal = DataTime.Now; //esta se declara a en el Page_Load

//en el boton1 cuando el usuario hace click
timeboton1 = DateTime.Now;
TimeSpan duracion = timeboton1 - timeCargaPrincipal;
segundostotales = duracion.TotalSeconds;
Response.Write(segundostotales);

el cálculo me muestra que el intervalo es de 0 segundos, cuando en realidad
sí hay tiempo que trancurrió, he visto en la depuración que los tiempos
timeCargaPrincipal y timeboton1 tienen el mismo valor, por lo que el
resultado es 0, pero haciendo paso a paso, sí me da el valor. tiene que ver
que al hacer click se recarga la página principal?

Les agradezco de antemano su apoyo.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
05/08/2009 - 10:27 | Informe spam
"Gustavo" wrote in message
news:
tengo lo siguiente, en una forma asp tengo varios controles, mi idea es
calcular el tiempo en el que un usuario realiza la acción click, es decir,
hay botones, linkbuttons y quiero calcular el tiempo en el que realiza una
acción y luego otra.

Inicio una variable DateTime timeCargaPrincipal cuando se carga la página
principal, luego en cada evento click tengo una variable también DateTime,
y
revisando la documentación, uso TimeSpan:

DateTime timeCargaPrincipal, timeboton1, //variables globales
double segundostotales;

timeCargaPrincipal = DataTime.Now; //esta se declara a en el Page_Load

//en el boton1 cuando el usuario hace click
timeboton1 = DateTime.Now;
TimeSpan duracion = timeboton1 - timeCargaPrincipal;
segundostotales = duracion.TotalSeconds;
Response.Write(segundostotales);

el cálculo me muestra que el intervalo es de 0 segundos, cuando en
realidad
sí hay tiempo que trancurrió, he visto en la depuración que los tiempos
timeCargaPrincipal y timeboton1 tienen el mismo valor, por lo que el
resultado es 0, pero haciendo paso a paso, sí me da el valor. tiene que
ver
que al hacer click se recarga la página principal?

Les agradezco de antemano su apoyo.




Cada vez que haces click en el botón, se ejecuta primero el Page_Load y
luego se ejecuta el Click del botón. Por eso tus dos variables tienen
siempre el mismo valor. El remedio es poner en el Page_Load un "if
(!IsPostBack)..." para distinguir la primera vez que se carga la página de
las cargas posteriores.

void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["timeCargaPrincipal"] = DateTime.Now;
}
}

Observa que el valor lo guardamos en el ViewState en lugar de guardarlo en
una variable de clase, ya que las variables de clase se pierden a cada
PostBack.

Para leerlo en el Click del botón haríamos esto:

DateTime timeCargaPrincipal = (DateTime)ViewState["timeCargaPrincipal"];
timeboton1 = DateTime.Now;
TimeSpan duracion = timeboton1 - timeCargaPrincipal;
Respuesta Responder a este mensaje
#2 Gustavo
05/08/2009 - 23:04 | Informe spam
Estimado Alberto:

Muchas gracias por tu ayuda!
Me ha funcionado bien, de hecho como tengo varios controles, pensé en una
pequeña función que toma inicialmente el valor de la hora, y luego al hacer
click en algún control, toma el valor con DateTime.Now, se calcula el
TimeSpan y me muestra el intervalo de tiempo.

Ahora lo que tengo que resolver es llevar los eventos click y los intervalos
a una base de datos, para posteriormente analizar qué fue lo que hizo la
persona con la aplicación, es decir, qué presionó, en qué momento, etc.

Pero me ha sido bastante útil tu ayuda!

Gracias nuevamente.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida