¡Feliz cumpleaños, Finlandia!


37

Introducción

Como se sabe, en 2017, Finlandia celebra sus 100 años de independencia. Para celebrar la ocasión, es su trabajo producir una bandera finlandesa para el disfrute de todos.

Reto

Cree un programa o una función que produzca la bandera de Finlandia (el borde gris está ahí solo para fines de presentación):

Bandera de finlandia

Especificaciones de la bandera

  • La relación de la bandera es 18:11, con la cruz siendo 3unidades gruesas, dando un conjunto de relación horizontal de 5:3:10y un conjunto de relación vertical de 4:3:4.
  • La imagen debe tener al menos 180 x 110píxeles de tamaño o, en el caso de arte ASCII, 90 x 55caracteres.
  • No hay un color RGB oficial para el azul, pero use la aproximación más cercana de (0, 53, 128). Si su sistema no admite valores RGB, use blue.
  • Para el color blanco, use RGB (255, 255, 255)o white.

No tan rapido

Como dibujar la bandera nacional finlandesa sería más sencillo que el desafío islandés del año pasado , tendremos que aumentar un poco la dificultad. Dado que el Día de la Independencia de Finlandia es el 6 de diciembre, el número decimal 100debe aparecer en algún lugar de la bandera cuando la fecha en Finlandia ( UTC + 02: 00 ) es 2017-12-06o posterior (su código no debe suponer que la máquina en la que se está ejecutando está configurada en zona horaria particular). Antes de la fecha, el número no debe estar allí. El número debe imprimirse en negro (RGB (0, 0, 0)o black), pero su ubicación y los parámetros de fuente dependen de usted.

Un ejemplo de tal render (nuevamente, ignore el borde):

Bandera de Finlandia con 100

Para fines de prueba, sería bueno incluir dos versiones adicionales de su solución, una con una fecha fija en el pasado y otra en el futuro.

Reglas

Las lagunas estándar están prohibidas, al igual que las imágenes / bibliotecas de banderas incorporadas. Además, su código no debe tomar ninguna entrada.

A los finlandeses no les gusta conversar, y este es , ¡así que no desperdicien personajes!


¿Deberíamos usar el espacio y # en el caso del arte ASCII ? ¿Y luego insertar los personajes en 100alguna parte?
Adám

1
¿Podemos tomar la fecha en Finlandia como entrada para sistemas que carecen de un reloj de pared interno o que no implementan la zona horaria? Ocasionalmente publico respuestas en GFA-Basic (Atari ST, sin zona horaria) o en el ensamblaje CP-1610 (Intellivision, sin fecha / hora) y tenemos respuestas en algunas otras plataformas de la vieja escuela de vez en cuando, que generalmente son bastante bueno dibujando cosas como esas, pero parece que están descalificadas aquí por el problema de la fecha.
Arnauld

1
@Arnauld: Gosh, nunca pensé que alguien usaría tales sistemas. Aprecio tu situación, pero ¿dejaría a otros en desventaja? Creo que permitir la entrada te dejaría con una simple comparación de enteros. ¿Una entrada no competitiva sin el aspecto del tiempo estaría fuera de discusión?
Antti29

1
@ Antti29 Honestamente, no puedo pensar en ninguna buena solución y es demasiado tarde para hacer una actualización importante de las reglas. A menos que alguien venga con una sugerencia realmente satisfactoria, creo que estos sistemas simplemente no pueden competir aquí. (Vi el desafío en la caja de arena y no pensé en eso. Mi mal.)
Arnauld

Respuestas:


24

C (Windows), 361 bytes

#import<time.h>
#import<windows.h>
C(x){SetConsoleTextAttribute(GetStdHandle(-11),x);}F(I,N,l,a,n,d)time_t n;struct tm*d;{system("mode 90,65");time(&n);d=gmtime(&n);n=d->tm_year<<24|d->tm_mon<<16|d->tm_mday<<8|d->tm_hour;for(a=l=I=15;I++<70;a=l=I<35|I>49?15:9)for(N=n>1963656468&I<17?C(240),printf("100"):0;N++<90;a=N-25?a:9,a=N-40||l==9?a:15)C(a),putchar(70);}

Desenrollado:

#import <time.h>
#import <windows.h>

C(x)
{
    SetConsoleTextAttribute(GetStdHandle(-11),x);
}

F(I,N,l,a,n,d) time_t n;struct tm*d;
{
    system("mode 90,65");

    time(&n);
    d = gmtime(&n);
    n = d->tm_year<<24 | d->tm_mon<<16 | d->tm_mday<<8 | d->tm_hour;

    for(a=l=I=15; I++<70; a=l=I<35|I>49?15:9)
        for(N=n>1963656468&I<17?C(240),printf("100"):0; N++<90; a=N-25?a:9,a=N-40||l==9?a:15)
            C(a), putchar(70);
}

Salida:

Salida cuando UTC time >= 2017-12-05-22-00:

Agregue lo siguiente en el código después d=gmtime(&n);para probarlo:

d->tm_year = 117;
d->tm_mon = 11;
d->tm_mday = 5;
d->tm_hour = 21;

13
¡Lindos nombres de variables!
Adám

16

PHP + SVG (HTML5), 147 137 123 bytes

Código SVG de Neil

https://codegolf.stackexchange.com/a/149850/66061

<svg><path d=180v110 fill=#fff></path><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580></path><?=time()<1512511200?:'<text x=9 y=15>100';

Actualización: Gracias a Shaggy por ayudarme a ahorrar 10 bytes.

<svg><path d=180v110 fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 /><?=time()<1512511200?:'<text x=9 y=15>100';

Actualización 2: idea inteligente de Ismael Miguel , gracias por guardar 14 bytes

<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 /><?=time()<1512511200?:'<text y=19>100';

Normal

normal

Después del 6 de diciembre +2 horas

después del 6 de diciembre - +2 horas


Entonces, ¿ time()da UTC?
Adám

¿Cuándo es 1512525600?
Adám

1512525600es 2017-12-06T02:00:00+00:00 in ISO 8601@ Adám y sí, time () es independiente de la zona horaria.
th3pirat3

12

Röda , 252 250 bytes

{s={|w,h|[` width="$w" height="$h" `]}r=`><rect`f=`" fill="#003580"/`
[`<svg`,s(18,11),r,s(18,11),`fill="#fff"/`,r,s(18,3),`y="4$f`,r,s(3,11),`x="5$f>`]
[`<text y="9" font-size="2">100</text>`]if{}|[[exec("date","+%s")]&"">="1512511200
"]
[`</svg>`]}

Pruébalo en línea!


25
La audacia! Has resuelto un desafío finlandés con un idioma sueco.
Antti29

1
@ Arthur Se llama así por la palabra sueca, no existe en finlandés. El git contiene finlandés porque yo hablo finlandés.
fergusq

1
@ Arthur: Me temo que necesitarás profundizar en la mentalidad finlandesa para apreciar completamente mi comentario :)
Antti29

1
@fergusq Bueno, si es del hombre que realmente nombró el idioma, entonces supongo que no hay una autoridad superior. Sin embargo, incluso sabiendo que "röda" no es una palabra finlandesa, mantengo que mi comentario anterior era plausible. Los nombres de idiomas no tienen que ser palabras reales. Además, si bien es posible que no esté dentro de él, soy muy consciente del antagonismo que tienen los finlandeses contra los suecos, con el historial de ocupación y el sueco como obligatorio en las escuelas como uno de varios recordatorios constantes.
Arthur

1
@ PaŭloEbermann: Lamentablemente.
Antti29

11

C #, 407 400 277 bytes

Raro como ForegroundColor =0esta permitido

Guardado 1 byte gracias a TuukkaX

Guardado 67 bytes gracias a Adam

()=>{for(int x=0,y;x<90;x++)for(y=0;y<55;y++){BackgroundColor=(ConsoleColor)15;if(x>24&x<41|(y>19&&y<36))BackgroundColor=(ConsoleColor)9;SetCursorPosition(x,y);Write(' ');}if(new DateTime(2017,12,5,22,0,0)<DateTime.UtcNow){SetCursorPosition(1,1);ForegroundColor=0;Write(100);}}

no golfed para probar:

using System;
using static System.Console;
class P
{
    static void Main()
    {
        Action func = () =>
        {
            for (int x = 0,y; x < 90; x++) for (y=0; y < 55; y++)
                {
                    BackgroundColor = (ConsoleColor)15;
                    if (x > 24 & x < 41 | (y > 19 && y < 36))
                        BackgroundColor = (ConsoleColor)9;
                    SetCursorPosition(x, y);
                    Write(' ');
                }

            if (new DateTime(2017, 12, 5, 22, 0, 0) < DateTime.UtcNow)
            {
                SetCursorPosition(1, 1); ForegroundColor =0; Write(100);
            }
        };
        func();
        ReadLine();
    }
}

para probar 100:

using System;
using static System.Console;
class P
{
    static void Main()
    {
        Action func = () =>
        {
            for (int x = 0,y; x < 90; x++) for (y=0; y < 55; y++)
                {
                    BackgroundColor = (ConsoleColor)15;
                    if (x > 24 & x < 41 | (y > 19 && y < 36))
                        BackgroundColor = (ConsoleColor)9;
                    SetCursorPosition(x, y);
                    Write(' ');
                }

            if (new DateTime(2017, 12, 2, 22, 0, 0) < DateTime.UtcNow)
            {
                SetCursorPosition(1, 1); ForegroundColor =0; Write(100);
            }
        };
        func();
        ReadLine();
    }
}

3
ForegroundColor = 0está permitido porque el literal 0es convertible a cualquier tipo de enumeración, como está escrito en la especificación C # .
Joey

9

Mathematica, 129 bytes

If[AbsoluteTime@Date[]<3721507200,s="",s=100];Graphics@{s~Text~{9,9},RGBColor[0,.2,.5],{0,4}~(R=Rectangle)~{18,7},{5,0}~R~{8,11}}


antes ... después ...
ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí
siempre puedes probarlo en Wolfram Sandbox
(pega el código y presiona Shift-Enter)


¿Cuándo es 3721507200?
Adám

@ Adám AbsolutimeTime da el número total de segundos desde el comienzo del 1 de enero de 1900
J42161217

@ Jenny_mathy 1 de enero de 1900 de qué zona horaria?
Daffy

@Daffy de utc +02: 00
J42161217

9

Python 2 , 247 246 230 210 189 bytes

import time
print'P3',180,110,255
w,b='255 '*3,'0 52 128 ';B=['0 '*3,w][time.gmtime()<(2017,12,5,22)]
a=w*40+b*30+w*100
x=w*10+a;y,z=w+B+w+B*3+w+B*3+a,(w+B)*5+a
print y+z+y+x*37+b*5400+x*40

Pruébalo en línea!

Imprime una imagen .ppm:

Bandera normal

Finland

Bandera con 100

Finland100


¿Se datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)puede reemplazar con datetime.utcnow()>=datetime(2017,12,05,22,0,0)o algo similar?
Adám

¡Utilice en su time.gmtimelugar para comparaciones de tuplas (vea mi respuesta)!
Antti Haapala

[time.time ()> 1512514800]
dieter

7

Python 3, 143 141 135 bytes

Utiliza escape ANSI para colores, usa cinco espacios o "100" como una cadena de color para que no necesite imprimir especialmente "100" en algún lugar de la bandera. Longitud 5 por ancho, porque 90/5 == 90//5. La cadena que se está utilizando se está definiendo en la fila 1. Luego iteramos 55 vueltas (altura), en cada iteración vse establece en una cadena con color [Blue, BrightWhite] y el índice seleccionado es booleano row<20 or r>34. Multiplicamos ese resultado por 5 nuevamente (dimensiones de ancho: 25:15:50, por lo que el ancho total es 90). Luego imprimimos v + Blue + Blue + Blue + v + v + Blackdónde vestá Azul o Blanco Brillante. Para aclarar la impresión: el ancho ves de 25 caracteres, el ancho de Azul ( e%44*3) es de 15 y el ancho de v*2es de 50.25+15+50es 90, que es el ancho y sigue las dimensiones requeridas en la tarea! Resumen bastante desordenado pero supongo que es mejor que nada.

import time;e="\033[30;%dm "+[" "*4,"100 "][time.time()>1512511200]
for r in range(55):v=e%[107,44][19<r<35]*5;print(v+e%44*3+v*2+e%40)

2
Bienvenido al sitio!
caird coinheringaahing

2
Bienvenido a PPCG! He agregado un indicador de idioma a su respuesta, y sugeriría que agregue una descripción básica de cómo funciona su programa, pero por lo demás, excelente primera respuesta :)
Taylor Scott

2
@TaylorScott lo hará! Y gracias, he estado al acecho aquí durante uno o dos años, pero nunca antes había enviado nada. ¡Simplemente no pude resistir porque Finlandia cumple 100 años!
FatalError

7

Processing.org / Java 191 188 bytes

-3 bytes gracias a KevinCruijssen

import java.util.*;void setup(){size(180,110);background(-1);fill(0);if(new Date().getTime()>=15125256e6D)text("100",0,9);noStroke();scale(10);fill(#003580);rect(5,0,3,11);rect(0,4,18,3);}

Before After


>15125255999999Lpuede ser>=15125256e6
Kevin Cruijssen

@KevinCruijssen tal vez se pueda acortar, pero 15125256e6 es 15125255815168, que es 37 horas demasiado tarde
PrincePolka

15125256e6D funciona, gracias
PrincePolka

Hmm, 15125256e6es 15125256000000cuando lo pruebo en Java 8. Pero no sé Processing.org, ¿entonces quizás es un poco diferente o está usando una versión diferente?Aquí hay un TIO con algunas pruebas básicas 15125256e6para verificar que funciona en Java 8. Pero me alegro de que Ddespués lo corrija. Me alegro de poder ayudar. :)
Kevin Cruijssen

7

Excel VBA, 120 118 117 Bytes

Función de ventana inmediata anónima VBE que no toma entrada y emite la bandera finlandesa y si Finlandia tiene más de 100 años, una 100en esa bandera. Esto se hace con respecto a la zona horaria de Pascua de los Estados Unidos, ya que no hay forma de que Excel o Excel VBA determinen la zona horaria sin complementos o sin acceder a Internet.

Cells.RowHeight=48:Cells.Interior.Color=-1:[F1:H11,A5:R7].Interior.Color=8402176:If Now>=#12/5/17 19:0#Then[B2]=100

Salida

Si Finlandia es menor de 100 años

Young Finnish

Si Finlandia tiene más de 100 años

Old Finnish

-2 Byte para cambiar If #12/5/17 19:00#<=Now Then[B2]=100aIf Now>=#12/5/17 19:0#Then[B2]=100

-1 Byte para uso en Cellslugar de[A1:R11]


2
¿Quién hubiera pensado que VBA podría hacer esto? Excelente.
Floris

3
@ Floris, me he dado cuenta de que cuando se trata de pixel art, Excel VBA puede hacer cosas increíbles. : D
Taylor Scott

Recuerdo haber escrito algo en el precursor de VBA (un lenguaje macro loco que fue escrito en las celdas de la hoja de Excel, una línea por celda) que hizo algo similar (crear un gráfico de intensidad 2D de una función que estaba estudiando). Eso debe haber sido 1991. Gracias por los recuerdos.
Floris

1
@Floris bueno, es una pena, pero es bueno saber que alguien más sabe lo que son :)
Taylor Scott

1
Y ahora que lo pienso, había algo antes de 4.0 ... Recuerdo estar molesto cuando todo se rompió. Como he estado muchas veces desde entonces. Maestros de no compatibles con versiones anteriores.
Floris

5

MATLAB, 133 130 123 bytes

3 10 bytes sabed gracias por @flawr!

r=1:180;r(51:80)=0;imshow(r(11:120)'*r,[0 .2 .5;1 1 1])
if datenum(datetime('now','T','UTC+2'))>=737035 text(9,9,'100'),end

Esto se usa [0, 51, 128]para el color azul. El tamaño de la imagen es de 180 × 110 píxeles.

Ejecución de muestra:

enter image description here

Ejecución de muestra con el texto (cambiando 737035a 0en el código para que el texto se muestre en cualquier día):

enter image description here


4

JavaScript (ES5) + SVG (HTML5), 189 179 bytes

document.write('<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 />'+(Date.now()<15125112e5?'':'<text x=0 y=30 fill=#000>100'))
<body color=grey bgcolor=silver>

(HTML para mostrar que se están cumpliendo los requisitos de color). Editar: Guardado 10 bytes gracias a @Shaggy. Salidas:

<body color=grey bgcolor=silver>

<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 />

<body color=grey bgcolor=silver>

<svg><path d=M0,0h180v110H0z fill=#fff /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0Z fill=#005580 /><text x=0 y=30 fill=#000>100


¿Cómo maneja esto el desplazamiento de la zona horaria cuando se ejecuta en otro lugar que no sea UTC + 2?
Adám

@ Adám Date.now()está en UTC, y lo comparo con el valor UTC de 2017/12/06 00:00:00 UTC+2.
Neil

¿Está bien usar su código SVG en mi fragmento de php?
th3pirat3

2
@ Adám ya te lo dije?
Neil

1
Reemplace <path></path>con <path/>para guardar algunos bytes.
Shaggy

4

Python 3 con Pillow, 213 212 211 caracteres (Unix) y 217 216 caracteres (Portátil)

Esta es la versión de Unix. Después de publicar me di cuenta de que el tiempo devuelto por time()no necesariamente tiene su época el 1 de enero de 1970, por lo que no es necesariamente portátil.

b=8402688;from PIL import Image,ImageDraw as d
j=Image.new('RGB',(180,110),~1);r=d.Draw(j);R=r.rectangle
R([50,0,79,109],b);R([0,40,180,69],b);import time
r.text((9,9),'100'*(time.time()>=0x5a273300),0)
j.show()

Este es el código portátil, 4 bytes más, se usa gmtimecon la comparación de tuplas, por lo que también debería funcionar de manera confiable en Windows.

import time
from PIL import Image,ImageDraw as d
b=8402688
j=Image.new('RGB',(180,110),~1)
r=d.Draw(j)
R=r.rectangle
R([50,0,79,109],b)
R([0,40,180,69],b)
r.text((9,9),'100'*(time.gmtime()>(2017,12,5,22)),0)
j.show()

Las imágenes se muestran en una ventana. Realmente difícil hacer que consuma menos personajes. Incluso time.timedevuelve un valor floatasí >0x5a273299que no sería tan correcto, o >0x5a273300estaría apagado por un microsegundo.

enter image description here

enter image description here


4

Tcl / Tk , 135 bytes

Debe ejecutarse en el shell interactivo

gri [can .c -bg #FFF]
lmap C {"52 2 82 112" "2 42 182 72"} {.c cr r $C -f #003580 -w 0}
if [clock se]>1512518520 {.c cr t 19 9 -te 100}

Antes del 2017/12/06 02:00 GMT

enter image description here

Después del 06/12/2017 02:00 GMT

enter image description here


4

Java 342 368 361 321 317 (299 + 18) bytes

Golfed

import java.awt.*;()->new Frame(){{setBackground(Color.WHITE);setUndecorated(0<1);setSize(180,110);setVisible(0<1);}public void paint(Graphics g){g.setColor(new Color(0,53,128));g.fillRect(50,0,30,110);g.fillRect(0,40,180,30);g.setColor(Color.BLACK);if(System.currentTimeMillis()>15125112e5)g.drawString("100",9,9);}}

Sin golf

import java.awt.*;
() -> new Frame() {
    {
        setBackground(Color.WHITE);                     //Color Objects ARE just RGB values
        setUndecorated(0 < 1);                          //Get's ride of title bar
        setSize(180, 110);             
        setVisible(0 < 1);
    }
    public void paint(Graphics g) {
        g.setColor(new Color(0, 53, 128));              //The special blue color
        g.fillRect(50, 0, 30, 110);
        g.fillRect(0, 40, 180, 30);
        g.setColor(Color.BLACK);
        if (System.currentTimeMillis() > 15125112e5)    //Time Condition
            g.drawString("100", 9, 9);
    }

Resultado

Finland

Créditos

40 bytes guardados por Olivier Grégoire por usar lambda.
4 bytes guardados por Kevin Cruijssen para el formato largo.
2 bytes guardados por el usuario 902383 para el formato hexadecimal.


1
@jfhcs: Bueno, desafortunadamente, esas eran las reglas. Y ... eso es Java.
Antti29

1
Ah, ya veo. Actualizaré mi respuesta. Debo haber malinterpretado las reglas.
jfh

1
Puede reemplazar los trues con 1>0, argscon a, y puede eliminar los espacios en torno =a P j = new...ahorrar unos pocos bytes.
Justin Mariner

1
342 bytes (324 bytes + 18 bytes para import java.awt.*;), con la condición incluida.
Olivier Grégoire

1
Su respuesta actual tiene varias fallas que la hacen inválida: 1. no hay ninguna import. 2. los nombres de las variables no se acortan: argsse pueden reducir a a. 3. todavía hay espacios opcionales que están contenidos en la entrada. 4. no hay impresión condicional de "100".
Olivier Grégoire

3

vim, 147

Realmente me gusta este desafío ☺. © es escape.

sy on
set ft=c
hi Normal ctermfg=4 ctermbg=7
hi Number ctermfg=0 ctermbg=7
norm 90i ©26|15r█Y40pMVr█Y14Pk
if localtime()>1512511199
norm R100 

enter image description here


3

bash e imagemagick, 135

((`date +%s`>1512511199))&&x=100
convert -size 150x80 xc: -background \#003580 -splice 30x30+50+40 -draw "fill black text 9,9 '$x'" x:

enter image description here enter image description here


1
Un mejor uso de evaluación aritmética: ((`date +%s`>=1512511200))&&x=100. Tenga en cuenta que moví las comillas simples dentro del -drawparámetro, donde no necesitan escapar.
manatwork

2

Tampio imperativo , 239 bytes (no competidor)

Kun iso sivu avautuu,se näyttää tekstin"<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ja,jos nykyinen aika millisekunteina on suurempi kuin 1512511200000,niin se näyttää tekstin"<text y=19>100".

Kun iso SIVU avautuu , se näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"ja , jos nykyinen Aika millisekunteina en suurempi kuin 1512511200000 , niin se näyttää tekstin"<text y=19>100" .

Versión en línea

Traducción:

Cuando se abre la página grande, mostrará el texto "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"y, si el tiempo actual en milisegundos es mayor que 1512511200000, mostrará el texto "<text y=19>100".

SVG fue tomado de esta respuesta by th3pirat3 (and Neil, appearently).

Este programa está escrito en una nueva versión de Tampio en la que he estado trabajando. Aquellos de ustedes que saben finlandés pueden ver que es casi legible. Marqué la respuesta como no competitiva porque este idioma fue publicado después de este desafío.

Para ejecutar este programa, vaya a la versión en línea anterior que contiene la versión JS compilada del programa o descargue el compilador de su página de Github . Para compilar el programa, ejecutepython3 tampio.py -p program.itp >program.html.

Tampio no es un lenguaje de golf en ninguna medida, pero debido al mejor código svg, en realidad venció a Röda ... Me sorprendió un poco.


Eso es más como eso!
Antti29

2

bash, 198

p()(printf "%-$1b$3" "\e[$2m")
r()(for i in `seq $1`;{ $2;})
a()(p 31 107
p 20 44
p 56 30\;107 "${1:-   }"
p 0 0 '
')
b()(p 95 44
p 0 0 '
')
r 20 a
r 15 b
r 19 a
((`date +%s`>1512511199))&&a 100||a

enter image description here enter image description here


1

HTML + CSS + Javascript, 339 bytes

<style>#f{width:180px;height:110px;position:relative}.b{background-color:#003580;position:absolute}.v{left:27.78%;width:16.67%;height:100%}.h{top:36.36%;height:27.27%;width:100%}</style><div id="f"><div class="b v"></div><div class="b h"></div></div><script>if(Date.now()>1512525600000)document.getElementById('f').innerHTML+=100;</script>

Aquí está la misma solución recortada a 260 bytes, lo que supone que su puerto de visualización tiene la proporción 18:11 adecuada.

<style>.b{background-color:#003580;position:absolute}.v{left:27.78%;width:16.67%;height:100%}.h{top:36.36%;height:27.27%;width:100%}</style><div class="b v"></div><div class="b h"></div><script>if(Date.now()>1512525600000)document.body.innerHTML+=100;</script>

Puede eliminar un 0 de la marca de tiempo en cualquiera de las soluciones para ver aparecer el "100".


1

HTML + Javascript, 329 bytes

Desvergonzadamente robé la parte de verificación de fecha de @jstnthms. Básicamente, solo escribo una tabla html cruda con las relaciones correctas de fila / col, thsiendo las partes azules. Probado en IE y Chrome, también en mee.fi -site .

<body onload="h=[4,3,4];w=[5,3,10];m=50;s='<style>*{border-spacing:0;padding:0;}th{background:#003580;}</style><table>';for(y in h){s+='<tr height='+(m*h[y])+'>';for(x in w){c=(y==1||x==1)?'h':'d';s+='<t'+c+' width='+(m*w[x])+'>'+(x+y<1&&Date.now()>15125112e5?'100':'')+'</t'+c+'>';}s+='</tr>';}s+='</table>';document.write(s);">

¿Se podría jugar más con JavaScript puro (pegar en la consola) ...?
diynevala

1

Perl 5, 139 bytes

($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x12 .s/7/4/gr x9 .$_ x12;time<1512511200||s/   /100/;say

para ser lanzado

perl -E '($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x12 .s/7/4/gr x9 .$_ x12;time<1512511200||s/   /100/;say'

capture

la relación se cambió debido a la relación de caracteres alto / ancho = 1.66 (5/3) de lo contrario con la relación original:

($w,$b,$r)=map"\e[${_}m","47;30",44,0;$_=$w.$"x25 .$b.$"x15 .$w.$"x50 .$r.$/;$_=$_ x20 .s/7/4/gr x15 .$_ x20;time<1512511200||s/   /100/;say

original ratio


1

Raqueta 6.10 con 2htdp / imagen, 202 bytes

(let*([w 180][h 110][p(λ(w h x y o)(place-image(rectangle w h'solid(color 0 53 128))x y o))][b(p w 30 90 55(p 30 h 60 55(empty-scene w h)))])(if(>(current-seconds)1512536400)(overlay(text"100"9'b)b)b))

Sin golf:

(let* (
       [flag-width 180]
       [flag-height 110]
       [place-rect (λ (width height x-pos y-pos other-pos)
                     (place-image
                      (rectangle width height 'solid (color 0 53 128))
                      x-pos y-pos other-pos))]
       [flag (place-rect
              flag-width 30 90 55
              (place-rect
               30 flag-height 60 55
               (empty-scene flag-width flag-height)))]
       )
  (if (> (current-seconds) 1512536400)  ; If Finland is 100 years old
      (overlay (text "100" 9 'b) flag)  ; add "100" to the flag
      flag))                            ; otherwise just the flag

with text enter image description here


Eres el primero en colocarlo 100en una parte azul, casi lo pierdo.
Antti29

1

Pequeño Básico , 300 bytes

Un script que no toma entradas y salidas al TextWindowobjeto.

GraphicsWindow.BrushColor=0
If Clock.Year*10000+Clock.Month*100+Clock.Day>=20171206Then
GraphicsWindow.DrawText(0,0,"100")
EndIf
GraphicsWindow.Height=275
GraphicsWindow.Width=450
GraphicsWindow.BrushColor="#003580
GraphicsWindow.FillRectangle(0,100,450,75)
GraphicsWindow.FillRectangle(125,0,75,275)

¡Pruébelo en SmallBasic.com! Requiere IE / Silverlight

Salida

Se muestra después del centésimo día de la independencia de Finlandia. Output


0

el código hecho anteriormente se ha reducido a lo siguiente:

HTML, CSS y JavaScript, 1599 bytes

var d1=new Date(1917,11,6);
var d2=new Date();
var difference = d2.getFullYear()-d1.getFullYear();
if(difference===100 && d2.getDate()===d1.getDate() && d2.getMonth()===d1.getMonth()) {
	document.getElementById("bottom-right").innerHTML=d2.getFullYear()-d1.getFullYear();
}
#flag{
background-color: #FFF;
width: 540px;
height: 330px;
border: 6px solid gray;
margin: 10% auto;
}
.surround{
background-color: #003580;
width: 90px;
height: 120px;
margin: 0px 300px 0px 150px;
}
.middle{
background-color: rgb(0, 53, 128);
width: 540px;
height: 90px;
}
<head>
<title>Happy Birthday, Finland</title>
<link rel="stylesheet" type="text/css" href="decor.css">
</head>
<body>
<div id="flag"><div class="surround"></div><div class="middle"></div><div class="surround"></div></div>
<script type="text/javascript" src="date.js"></script>
</body>


Bueno, en mi defensa, diría que esta es mi primera vez. Intentará hacer un código más corto en el futuro.
Raunaq Koppikar

Como Stephen ya ha dicho, este es un código de golf, por lo que su programa debe ser lo más breve posible. Tenga en cuenta que si no juega golf en su programa (es decir, lo deja como está), está sujeto a eliminación, ya que actualmente no es un competidor serio. Finalmente, bienvenido al sitio!
caird coinheringaahing

Seguro. Definitivamente lo jugaré lo antes posible
Raunaq Koppikar

Edited as suggested
Raunaq Koppikar

You can also remove indentation in all, and remove newlines in CSS and HTML. Plus you can remove spaces between symbols in JS (like === and 100).
NoOneIsHere

0

HTML + JavaScript, 247 bytes

<table cellspacing=0 cellpadding=0><tr height=40><td width=50><td width=30 bgcolor=003580><td width=100><tr height=30><td colspan=3 bgcolor=003580><tr height=40><td><td bgcolor=003580><td><script>Date.now()>15125112e5&&document.write(100)</script>


0

JavaScript ES6, 532 bytes

Decided to try using a Base64 image to see how short I could get it. Not a winner, but interesting nonetheless.

document.write(`${Date.now()>1512525600000?'<i style=position:fixed>100</i>':''}<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAABuAQMAAAC0pqs4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABlBMVEX///8ANYAaS5LoAAAAAWJLR0QB/wIt3gAAAAd0SU1FB+EMBRcAAPqLykEAAAAxSURBVEjHY2AAA/v///8zYAGj4qPio+KDWfw/VvBhVHxUfEiKD7b8NSo+Kj4qTrQ4AHKtsHq12fKCAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDIzOjAwOjAwKzAxOjAwkDJOKAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQyMzowMDowMCswMTowMOFv9pQAAAAASUVORK5CYI>`)


No need for parentheses inside interpolation (${(…)}${…}); no need for double quotes around those HTML attribute values; although invalid, in most cases you can cut off the base64 encoded strings's padding with equal signs (Firefox has certainly no problem decoding it).
manatwork
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.