Cómo hacer que este concepto de tiempo métrico de base 10 funcione

Estoy tratando de hacer una aplicación falsa de tiempo métrico para hacerle una broma a algunos amigos cuando hagamos un viaje a Canadá pronto y me gustaría saber cómo podría hacer que esto funcione conceptualmente.

Ya sé que el tiempo ya se considera "métrico", pero para que esta broma funcione, el prank-ee debe creer que no lo es.

Entonces, si asumimos que "tiempo regular" significa la escala de tiempo que todos en el mundo usan (24 horas en un día, 60 segundos en un minuto, 60 minutos en una hora, etc.), entonces ¿cómo lo haría de alguna manera? vincular el "tiempo regular" con el "tiempo métrico" (100 horas en un día, 100 segundos en un minuto, 100 minutos en una hora) para crear un reloj de tiempo métrico creíble.

(por creíble me refiero a no hacer que los segundos pasen demasiado rápido para compensar los 913.600 segundos extra del día)

En pocas palabras,
quiero hacer de alguna manera una escala de tiempo creíble basada en potencias de 10 que podría reemplazar de manera factible nuestro sistema de cronometraje actual, sin dejar de estar vinculado a nuestra escala de tiempo actual (por lo que el "tiempo métrico" de las 80:00 a. m. caería al mismo tiempo todos los días).



Puntos de bonificación si puede explicar una forma realista de hacer esto donde cada incremento (es decir, segundos en un minuto, minutos en una hora, etc.) es el mismo.

Puntos de bonificación adicionales si alguien puede proponer una solución en la que no tenga que implementar un salto de tiempo masivo a la medianoche para que los tiempos se correlacionen.




Entiendo que este puede no ser el mejor lugar para hacer esta pregunta, pero como no estoy preguntando cómo implementar esto en el código, sino cómo funcionaría el concepto . Por lo tanto, pensé que este sería el mejor lugar para preguntar.

¿Has probado a hacer que el día sea de 1.000.000 de segundos? Entonces puedes hackearlo desde allí.
Quiero que esto sea pseudo creíble, si hago que la cantidad de segundos por día en el tiempo "métrico" sea mayor que el tiempo "regular", entonces tendré que implementar un salto de tiempo a la medianoche para hacer que el mismo tiempo métrico caiga en la misma parte del día (real) para que sea algo convincente.
Lo que xandar quiso decir es que debes calcular cuántos milisegundos de tiempo real equivalen a una millonésima parte del total en un día. Luego puede ir desde allí y dejar que su reloj avance en uno, cada vez que pase esta cantidad de milisegundos.
¿Habría 10 horas en un día?
¿Por qué inventar algo nuevo? Solo eche un vistazo al intento de Swatch en el tiempo global de Internet, ".beats". Gran bonificación: puede obtener piezas de tiempo reales y legítimas, como relojes de pulsera que muestran la hora .beats.
Actualmente estoy revisando el Close-Vote permanente para esta pregunta. Me haces pasar un mal rato con eso. Por un lado, esta puede ser una buena pregunta sobre el tema si se tratara, por ejemplo, de un nuevo estado que presenta su propio tiempo (porque ELLOS utilizan el sistema normal de 24 horas), pero tal como está, es simplemente una broma. Por supuesto, no quiero obligarte a pensar en algo solo para justificar mi opinión. Principalmente basado en la opinión también es ligeramente válido, aunque creo que diste un buen criterio cuando una respuesta es válida. ¿Puede alguien mostrarme una meta-publicación sobre mi primer punto, de lo contrario, hago una?
@J_F_B_M: Siento que la pregunta, tal como está, probablemente esté definitivamente fuera de tema, pero al mismo tiempo está muy relacionada con lo que muchas personas ya hacen mientras construyen mundos. Como, "¿cuál es una buena manera de diseñar un sistema métrico de cronometraje con propiedades x, y, z que el nuevo emperador del mundo podría usar sin influir indebidamente en la percepción estándar del tiempo?".
A la gente de Programming Puzzles & Code Golf le encantaría esta pregunta. Ese sitio tiene un cierto amor por las bromas y el pensamiento innovador. Además, ¡les encantan las preguntas con las palabras "puntos de bonificación"!
@ThalesPereira, ¿debería publicarlo allí?
@ACE Sería mejor aceptado que en Worldbuilding SE, eso es seguro. ¡Lo intentaría!
@ThalesPereira bueno, ya tengo una respuesta aquí...
Los revolucionarios franceses que nos pegaron con el sistema métrico también intentaron imponer el cronometraje decimal: en.wikipedia.org/wiki/Decimal_time#France

Respuestas (3)

En unidades imperiales, una milla se divide en yardas, pies y pulgadas (como los días se dividen en horas, minutos y segundos). Sin embargo, en el sistema métrico las subunidades se basan en potencias de diez y se nombran con prefijos: el kilómetro se divide en metros, centímetros , milímetros , etc.

Para un sistema de tiempo métrico, aplicaría el mismo concepto a la unidad base de un día. En lugar de horas y minutos, tendría subunidades como centidays y millidays.

Por ejemplo, 10:18:42 pmsería igual a:

1 2   día + 10   horas 24   horas / día + 18   minutos 24 × 60   minutos / día + 42   segundos 24 × 60 × 60   segundos / día 0.92965   días

(De donde proviene el medio día adicional pm).

Las subdivisiones del día serían:

1   día (d) = 1   día 1   decidir (dd) = 1 10   día = 2   horas   24   minutos 1   centenario (cd) = 1 100   día = 14   minutos   24   segundos 1   milidía (md) = 1 1000   día = 1   minutos   26.4   segundos 1   microdia ( m d) = 1 10 6   día = 86.4   milisegundos

Para divertirte, puedes inventar apodos para las diferentes unidades. Por ejemplo, deciday podría ser "hora métrica", "deci" o (basado en la abreviatura dd) un "fracaso". Milliday podría ser "minuto métrico" o "medio".

Podríamos agregar una "unidad de conveniencia" adicional también basada en las potencias de diez:

1   segundo métrico (s metro ) = 1 10 5   día = 0.864   segundos

Así que podríamos escribir nuestro tiempo desde antes ( 10:18:42 pm) en tiempo métrico como:

9   dd   29   Maryland   65.3   s metro

O simplemente como 9:29:65o incluso 0.92965.

Esto también facilita la representación de fechas, ya que podemos poner un número entero de días delante del punto decimal. De hecho, podríamos descartar los meses por completo y solo usar números de días. Por ejemplo, hoy es 2016-02-11(11 de febrero de 2016). Enero tiene 31 días, por lo que el 1 de febrero es el día 32 y el 11 de febrero es el día 42. Por lo tanto, en el calendario métrico hoy es el "día 42 de 2016".

Poniéndolo todo junto, 10:18:42 pm, Feb 11, 2016es 42.9:29:65, 2016.


Bromas aparte, esto es parecido a un sistema en tiempo real: la fecha juliana . Hay muchas variantes, pero todas cuentan días decimales desde algún punto de partida.

Usemos la misma fecha anterior como ejemplo. En la fecha juliana "tradicional", 2016-02-11T22:18:42es igual a JD 2457430.429653. Tenga en cuenta que la parte decimal es casi la misma, pero hay una diferencia de 0.5. La fecha juliana comienza al mediodía, no a la medianoche, fue inventada por los astrónomos, y de esta manera no se da la vuelta en medio de la noche cuando están haciendo sus observaciones. Tenga en cuenta también que asumí que nuestra hora estaba en GMT: no existe un concepto de zonas horarias para la fecha juliana, por lo que debemos convertir la hora a GMT antes de convertirla a JD.

También existe la fecha juliana "modificada", definida como MJD = JD − 2400000.5. Nuestro tiempo de ejemplo es MJD 57429.929653. La fecha juliana modificada se usa con frecuencia en la industria espacial porque es más corta que la fecha juliana completa (y más fácil de representar en computadoras con precisión limitada) y comienza a la medianoche como la mayoría de los otros sistemas de tiempo (de donde proviene el factor de) 0.5.

Dato curioso: las "fechas estelares" de Star Trek se basaron en el concepto de la fecha juliana.


Un último punto: mencioné las zonas horarias en la sección anterior, y para un país grande como Canadá, las zonas horarias son prácticamente una necesidad (aunque China parece estar bien sin ellas). Hay dos opciones:

  • Base la hora métrica en la hora local real. Entonces, si estás en Ottowa (EST/UTC-5) y los relojes locales dicen 10:18 pm, entonces tu reloj métrico diría 9:29. A la misma hora en Vancouver (PST/UTC-8), los relojes locales dicen 7:18 pmy su reloj métrico diría 8:04. Este es el más fácil de implementar, ya que solo puede hacer el cálculo en función de la hora local del teléfono, que generalmente es lo que obtiene de las funciones de fecha integradas de manera predeterminada. Las diferencias entre las zonas horarias no son un número entero de fallas o medios, pero ese es el tipo de cosas extrañas y estúpidas que suceden en la vida real.

  • ¡Crea tus propias zonas horarias! Esto hace que la lógica de la aplicación no sea trivial y probablemente esté demasiado lejos para una aplicación de broma; pero me gusta pensar en este tipo de cosas, así que aquí va.

    Si nos restringimos a las compensaciones de zona horaria de fallas completas, entonces solo hay diez zonas horarias en el mundo, cada una de aproximadamente 36 grados de ancho. Canadá es lo suficientemente ancho como para tener tres de ellos (por lo que hay una diferencia de dos fallas entre las zonas horarias del este y del oeste). Para hacer las cosas plausibles, haré las zonas horarias métricas fusionando las zonas horarias reales para hacer nuestras vidas un poco más fáciles.

    La +0zona horaria se centra en 0 grados de longitud. Las líneas divisorias "ideales" serían 18 grados a cada lado, por lo que el borde occidental (que divide las zonas horarias +0y -1) atraviesa Islandia. La -1zona horaria tiene 36 grados de ancho e incluye la mayor parte de Groenlandia, justo atravesando el extremo este de Canadá. La -2zona horaria incluye la mayor parte de los Grandes Lagos, deteniéndose justo antes del extremo oeste del Lago Superior. La -3zona horaria contiene Alberta, Saskatchewan y Manitoba. Termina justo después de la costa oeste de los Estados Unidos. La -4zona horaria incluye la mitad oeste de la Columbia Británica y el Yukón.

    Estas divisiones ideales en realidad se alinean bastante bien con las zonas horarias existentes. La nueva -2zona horaria se alinea con UTC-4(hora del Atlántico) y UTC-5(hora del Este). El nuevo -3incluye UTC-6(hora central) y UTC-7(hora de la montaña). Finalmente, la nueva -4zona horaria incluye UTC-8(hora del Pacífico), así como UTC-9(hora de Alaska). Puede llamar a las nuevas zonas horarias "Eastern Metric Time", "Central Metric Time" y "Pacific Metric Time" (con las abreviaturas EMT, CMT y PMT).

    Para la implementación real, obtendría la hora UTC actual de las bibliotecas de fechas y la convertiría a hora métrica. A continuación, busque el desplazamiento UTC actual del usuario y asígnelo a una de las nuevas zonas horarias (todos los casos anteriores son solo newTZ = floor(oldTZ / 2)), luego sume o reste esa cantidad de fallas de la hora métrica. Los límites cambiarían durante el horario de verano (por ejemplo, las ubicaciones que usan PDT se mueven a la -3zona horaria y las ubicaciones en CDT se mueven a la -2zona horaria), pero podemos vivir con eso. El floor(TZ / 2)truco parece funcionar razonablemente bien en el resto del mundo también.

Woah, esto fue mucho más detallado de lo que esperaba, ¡muchas gracias por tu respuesta! Si hay algún interés, podría publicar la aplicación de tiempo métrico final en la App Store para que otros la disfruten (a expensas de sus amigos jajaja).
@ACE Sucedió que había pensado en esto antes, por lo que la respuesta estaba como "lista para usar" en mi cabeza. En cuanto a la aplicación, olvidé mencionar que probablemente tendrás que implementar zonas horarias ya que Canadá tiene una diferencia de 4 horas (perdón, 0.16 decis) entre sus costas. Actualizaré la respuesta en consecuencia.
La aplicación solo está destinada a vender una broma, pero si realmente hay un mercado para algo como esto, podría agregar zonas horarias y publicarlo en la tienda...
@ACE Incluso si en realidad no implementa zonas horarias, creo que tener una opción de zona horaria falsa realmente lo vendería (¡además de aumentar la confusión de su víctima!)
Y pensé que solo ir al tiempo POSIX sería bastante extraño.
"Debes asegurarte de poner tu reloj en EMT". "¿Hora del este?" "No, hora métrica del este ... ¿qué, no tienes esa opción? Puedo mostrarte una aplicación que sí..."
Hmm, para las zonas horarias de broma funciona bien. Sin embargo, si vamos correctamente al tiempo métrico, recomendaría deshacerse de las zonas horarias y el horario de verano. ¿Realmente importa si te despiertas a las 8 a.m. o a las 13 de la noche? Es solo un número para representar un tiempo. El este de Canadá podría comenzar la escuela a las 11:00 y el oeste a las 13, pero eso no es un problema.
@TimB Personalmente, estoy en contra de la conversión a una zona horaria "universal", pero estoy a favor de la eliminación del horario de verano. Pero, creo que esa es una discusión para otra pregunta.
@2012rcampion alguien necesita hacer un mapa de zonas horarias basado en su idea de las zonas horarias. Si incluyo eso en la aplicación, la fábrica de credibilidad aumentará en 100.
"segundo métrico", eres tan malvado
@PyRulez Bueno, es una broma >:)
@ 2012rcampion está bien, encontré algunos inconvenientes al implementar esto ... ¿cómo convertiría la fecha decimal ( .92965en su ejemplo) a 9 dd 29 md 65.3 sm?
@ACE Funciona de la misma manera que convierte (digamos) una cantidad de segundos en una lista de horas, minutos, segundos. Algo comodeciday = (int)(day * 10); milliday = (int)(day * 1000) % 100; msec = (int)(day * 100000) % 100;
Si la conversión a tipo entero redondea en lugar de truncar (o, como Javascript, no tiene un tipo entero), entonces use una floorfunción en su lugar.
@ACE Lo siento, usuario de Windows + Android; parece que debemos separarnos aquí. ¡Te deseo suerte!
¡Gracias por tu respuesta detallada! No podría haber llegado tan lejos sin él.
Seguimiento rápido de @2012rcampion, los amigos que estoy reclutando para ayudar a ejecutar esta broma se preguntaban si es posible crear un sistema de tiempo métrico que sea fácil de explicar (100 segundos en un minuto, 100 minutos en una hora, etc.) pero sin tener que implementar un gran salto de tiempo a medianoche...
@ACE Bueno, la duración del día no es un número racional de SI segundos. Entonces, debe renunciar a uno de: 1) el día que tiene una división de potencia de diez en sus subunidades, 2) la subunidad más pequeña es un número racional de SI segundos, o 3) el sistema de tiempo se mantiene sincronizado con el astronómico ciclo día-noche. No puedes tener los tres, tienes que elegir uno para descartar.
@ACE Entonces, la respuesta a su pregunta es sí, pero ... Por ejemplo, si usó "100 segundos en un minuto, 100 minutos en una hora", entonces el día dura 8,64 horas. Puede renunciar (1) y tener un "salto de tiempo a la medianoche", o renunciar (3) y hacer que el día dure 10 horas, con el mediodía solar llegando 1 hora, 36 minutos antes todos los días. Obtendría dos mediodías solares en un "día métrico" aproximadamente una vez a la semana. Renuncié a (2) en mi sistema, ya que (3) es muy deseable y (1) parece necesario para que el concepto funcione correctamente.
@ACE Tenga en cuenta, sin embargo, que no tiene que pensar en (1) como que requiere un "salto de tiempo". Después de todo, no pensamos que "hay un salto de fecha de 70 días al final del mes", solo sabemos que el mes tiene 30 días (o 31, 28 o 29). Del mismo modo, no tiene que decir "el tiempo avanza 1,36 horas a la medianoche", simplemente diga "el día dura 8,64 horas", de modo que las 8:63:99 pasan a las 0:00:00, al igual que el 31 de marzo. se transfiere al 1 de abril.
Divertida pequeña cosa de bonificación adicional que encontré. al parecer, el tiempo de base 10 se creó en realidad: youtu.be/N0U-XEmKPKg?t=1077

El método que siempre he usado es 10 horas por día, 100 minutos por hora, 100 segundos por minuto, como sugiere 2012rcampion.

Entonces hay 24 10 = 2.4 horas normales por hora métrica, 24 60 10 100 = 1440 1000 = 1.44 minutos normales por minuto métrico, y 24 60 60 10 100 100 = 86400 100000 = 0.864 segundos por segundo métrico.

Si está construyendo su propio reloj en un microcontrolador o usando dispositivos electrónicos pequeños, querrá actualizar el segundo métrico cada 864 milisegundos normales.

Si solo está escribiendo software en una computadora portátil o dispositivo móvil que tiene acceso simple a las funciones de tiempo normales, entonces puede obtener la hora actual del día en segundos.

Usé Visual Basic.Net, hice un par de etiquetas, dos cuadros de texto y un temporizador configurado para actualizarse cada 50 milisegundos (aunque podría hacerlo con menos frecuencia, especialmente si no muestra las dos veces seguidas).

Aquí está el código VB.Net usando VS 2013. Cree un nuevo proyecto de formularios, cree un cuadro de texto llamado txtNormal, otro llamado txtMetric, un temporizador llamado, timClockluego pegue el código en el archivo de clase y debería funcionar.

Private Sub timClock_Tick(sender As Object, e As EventArgs) Handles timClock.Tick Dim Now As Date = DateTime.Now Dim normalSeconds As Integer = Now.Second Dim normalMinutes As Integer = Now.Minute Dim normalHours As Integer = Now.Hour Dim totalSeconds As Double Dim metricSeconds As Double Dim metricMinutes As Integer Dim metricHours As Integer totalSeconds = Now.TimeOfDay.TotalSeconds metricSeconds = 100000 * totalSeconds / 86400 metricHours = Math.Floor(metricSeconds / 10000) metricSeconds -= metricHours * 10000 metricMinutes = Math.Floor(metricSeconds / 100) metricSeconds -= metricMinutes * 100 metricSeconds = Math.Floor(metricSeconds) txtNormal.Text = normalHours.ToString("00") + ":" + normalMinutes.ToString("00") + ":" + normalSeconds.ToString("00") txtMetric.Text = metricHours.ToString("00") + ":" + metricMinutes.ToString("00") + ":" + metricSeconds.ToString("00") End Sub

Aquí hay varias capturas de pantalla de un programa simple que se ejecuta con diferentes zonas horarias:Imperial: 00:25:23, Métrica: 00:17:63 Imperial: 05:26:30, Métrico: 02:26:74 Imperial: 10:27:00, Métrico: 04:35:42 Imperial: 11:58:15, Métrico: 04:98:78 Imperial: 16:58:43, Métrico: 07:07:44 Imperial: 21:29:19, Métrico: 08:95:36 Imperial: 23:30:00, Métrico: 09:79:17

Si quiere ir más allá, puede convertir semanas en períodos de 10 días, con 36,5 semanas por año, aunque obviamente no hay forma de convertir completamente a un calendario métrico de base 10 sin ajustar la rotación de la Tierra.

Cabe destacar que Francia usó este sistema de tiempo exacto desde 1794 hasta al menos 1801, aunque solo fue obligatorio hasta 1795, y usaron una semana de 10 días desde 1800 hasta 1805. En su sistema, el reloj y las unidades se llamaban "decimal". " en lugar de "métrico", aunque introdujeron el sistema métrico al mismo tiempo, y en ocasiones usaban la unidad "décime", una décima de hora decimal o diez minutos decimales. Durante esta era, el astrónomo Pierre-Simon Laplace usó un reloj decimal que terminó siendo la base para que los astrónomos usaran el tiempo decimal que 2012rcampion menciona en su respuesta.

Voy a indicarle una solución existente, que es algo similar a lo que sugiere, pero no estoy seguro de si esto es lo que desea. Hackworth también lo ha mencionado en un comentario.

Hay un sistema de tiempo llamado Swatch Internet Time . Esto fue inventado por Swatch (de ahí el nombre).

El día se divide en 1000 latidos. Eso hace que un latido dure alrededor de 1 minuto y 26 segundos. Por lo tanto, 500 latidos serían el mediodía, 250 latidos las 6 a. m., etc. (El reloj no tiene zonas horarias, por lo que esos tiempos serían UTC+1, pero, por supuesto, podría ignorarlo para su propósito. Hay un convertidor en el sitio web de Swatch )

Lo que hace que esto sea genial en mi opinión es que 1 segundo corresponde a 0.011574 .beats, que es casi 0.01. Entonces, si crea un reloj o una aplicación, el cambio en este decimal será prácticamente indistinguible de los segundos. Entonces podría tener un indicador para este segundo decimal y 'marcará' tan rápido como un segundo indicador en un reloj normal.

Tenga en cuenta que 1:1.15740740740740... es lo mismo que el 0.864:1 que ya sugerimos. En realidad, es bastante fácil notar la diferencia cuando están espalda con espalda, aunque podría ser más difícil si solo miras el reloj métrico. Un minuto estándar tiene 60 segundos estándar o 69,4 segundos métricos, lo cual es una discrepancia bastante grande.