Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Ideas para manejo de fechas (https://www.clubdelphi.com/foros/showthread.php?t=95147)

pablocarlos 06-04-2021 15:51:54

Ideas para manejo de fechas
 
Saludos! Estoy trabajando con una app en rad studio xe10.4 tipo cliente servidor, esta app tendrá un sorteo todos los dias viernes. En clientes de habla hispana no tengo problemas, ya está hecho, tomando la fecha del celular y obteniendo el nombre del día... El problema surge al ser una aplicación que estaría en todo el mundo. Alguna sugerencia de como tomar ese "viernes" de cada pais? Una posibilidad sería tomar dia de UTC pero tampoco me doy idea de como hacerlo. Se agradece su tiempo.

mamcx 06-04-2021 17:05:09

Hay 2 artículos que muestran las complejidades de tu problema:

https://codeblog.jonskeet.uk/2019/03...silver-bullet/

http://www.creativedeletion.com/2015...datetimes.html

No te descorazones... pero el punto es que una vez te sales de tu "locale" la vaina se pone peluda, ya sean en monedas, idiomas, fechas, y cualquier otra cosa que DEPENDE de vainas políticas y legales y culturales e históricas...

De ahi, la parte mas importante es usar una librería de fechas que sea robusta y hacer todos los cálculos con ella. Yon conozco la familia de clones de JodaTime y desde entonces uso solo su equivalente en otros lenguajes, pero no veo una que sea así para Delphi. Quizás otro compañero pueda dar luz al respecto?

pablocarlos 06-04-2021 17:41:54

Cita:

Empezado por mamcx (Mensaje 540544)
Hay 2 artículos que muestran las complejidades de tu problema:

https://codeblog.jonskeet.uk/2019/03...silver-bullet/

http://www.creativedeletion.com/2015...datetimes.html

No te descorazones... pero el punto es que una vez te sales de tu "locale" la vaina se pone peluda, ya sean en monedas, idiomas, fechas, y cualquier otra cosa que DEPENDE de vainas políticas y legales y culturales e históricas...

Gracias por responder! Realmente se me ha complicado, una loca idea... traduciendo la hora del sistema al inglés? Se podrá? Me encanta en lo que me meti! :D:D Saludos!

Neftali [Germán.Estévez] 06-04-2021 18:02:02

Pensando en obtener la hora del móvil se me ocurren varios problemas, uno básico, que es el de que la hora puede no estar sactualizada (siempre podemos cambiar fecha y hora del mnóvil, cosa que funciona en muchos juegos, por ejemplo).

Por lo tanto si descartamos que se pueda obtener del móvil, vamos a que lo siguiente sería obtenerla de otro sitio.
Por un lado, si la aplicación está conectada a una Base de Datos o servidor, se me ocurre que la obtengas del servidor, si eso no es posible, lo siguiente es que la obtengas de un servidsor de Intenet.

En este segundo caso, tienes muchas opciones y la forma es basante sencilla.
https://www.clubdelphi.com/~hector/f...ead.php?t=1502

Es un ejemplo, pero hay más formas sin mucha complicación.
https://stackoverflow.com/questions/...time-in-delphi

mamcx 06-04-2021 20:10:38

Cita:

Empezado por pablocarlos (Mensaje 540546)
traduciendo la hora del sistema al inglés? Se podrá? Me encanta en lo que me meti! :D:D Saludos!

No entiendo? No hay que traducir a otro idioma. Si leíste los artículos? El primero incluso sugiere como guardar en la BD.

mamcx 06-04-2021 20:11:47

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 540547)
Pensando en obtener la hora del móvil se me ocurren varios problemas

Por como entiendo, la fecha realmente se asignaría en el servidor (que hace el sorteo)

pablocarlos 06-04-2021 20:26:13

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 540547)
Pensando en obtener la hora del móvil se me ocurren varios problemas, uno básico, que es el de que la hora puede no estar sactualizada (siempre podemos cambiar fecha y hora del mnóvil, cosa que funciona en muchos juegos, por ejemplo).

Es verdad, lo había pensado...



Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 540547)
Por un lado, si la aplicación está conectada a una Base de Datos o servidor, se me ocurre que la obtengas del servidor, si eso no es posible, lo siguiente es que la obtengas de un servidsor de Intenet.

Claro, pero cómo hacer para saber si es viernes, descodificando la fecha... :rolleyes::rolleyes:


Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 540547)
En este segundo caso, tienes muchas opciones y la forma es basante sencilla.
https://www.clubdelphi.com/foros/showthread.php?t=1502

Esto lo había visto en una búsqueda aqui en el foro, ahora la fecha, imagino, tomará local de cada movil...

Creo que apuntaré a tomar la fecha del servidor y de alli el idioma para realmente cerrar el sorteo cada viernes...
Gracias por vuestras sugerencias!

pablocarlos 06-04-2021 20:37:04

Cita:

Empezado por mamcx (Mensaje 540550)
Por como entiendo, la fecha realmente se asignaría en el servidor (que hace el sorteo)


Muchas gracias, asi es, tomaré del servidor. Saludos!

Neftali [Germán.Estévez] 07-04-2021 08:29:02

Cita:

Empezado por mamcx (Mensaje 540550)
Por como entiendo, la fecha realmente se asignaría en el servidor (que hace el sorteo)

Por lo que dice en el primer mensaje parece que no, que la está cogiendo del celular.

Cita:

Empezado por pablocarlos (Mensaje 540543)
...tomando la fecha del celular y obteniendo el nombre del día...


Neftali [Germán.Estévez] 07-04-2021 08:31:51

Cita:

Empezado por pablocarlos (Mensaje 540551)
Esto lo había visto en una búsqueda aqui en el foro, ahora la fecha, imagino, tomará local de cada movil...

La fecha al igual que la hora, debes obtenerla del servisor (sea de internert o del servidor de aplicaciones).


La franja horaria es GMT +2. Ahora son las 16:08:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi