С Днем Рождения, Финляндия!


37

Введение

Как известно, в 2017 году Финляндия празднует свое 100-летие независимости. Чтобы отметить это событие, вы должны изготовить финский флаг для всех желающих.

Вызов

Создайте программу или функцию, которая производит флаг Финляндии (серая рамка предназначена только для презентаций):

Флаг Финляндии

Флаг спецификации

  • Соотношение флага 18:11, с крестом 3толщиной в единицы, дает набор горизонтального соотношения 5:3:10и набор вертикального соотношения 4:3:4.
  • Размер изображения должен быть не менее 180 x 110пикселей, а в случае ASCII - 90 x 55символов.
  • Для синего нет официального цвета RGB, но используйте ближайшее приближение (0, 53, 128). Если ваша система не поддерживает значения RGB, используйте blue.
  • Для белого цвета используйте RGB (255, 255, 255)или white.

Не так быстро

Поскольку нарисовать финский национальный флаг было бы проще, чем прошлогодняя исландская задача , нам придется немного увеличить сложность. Учитывая, что День независимости Финляндии - 6 декабря, десятичное число 100должно появляться где-то на флаге, когда дата в Финляндии ( UTC + 02: 00 ) является 2017-12-06более поздней (ваш код не должен предполагать, что машина, на которой он работает, установлена ​​на конкретный часовой пояс). До даты номер не должен быть там. Номер должен быть напечатан черным (RGB (0, 0, 0)или black), но его расположение и параметры шрифта зависят от вас.

Пример такого рендера (опять же игнорируем границу):

Флаг Финляндии с надписью 100

В целях тестирования было бы неплохо включить две дополнительные версии вашего решения: одну с фиксированной датой в прошлом и одну в будущем.

правила

Стандартные лазейки запрещены, как и встроенные изображения флагов / библиотеки. Кроме того, ваш код не должен принимать никаких данных.

Финнам не нравятся разговоры, а это , так что не теряйте персонажей!


Должны ли мы просто использовать пространство и # в случае искусства ASCII ? А потом вставить 100где-нибудь символы ?
Адам

1
Можем ли мы взять дату в Финляндии в качестве входных данных для систем, в которых отсутствуют внутренние настенные часы или нет часового пояса? Иногда я публикую ответы в GFA-Basic (Atari ST, без часового пояса) или CP-1610 (Intellivision, без даты / времени вообще), и время от времени у нас есть ответы на некоторых других платформах старой школы, которые обычно довольно хорошо рисует такие вещи, но здесь, похоже, дисквалифицированы из-за даты выпуска.
Арно

1
@Arnauld: Гоша, я никогда не думал, что кто-то будет использовать такие системы. Я ценю ваше затруднение, но оставит ли это других в невыгодном положении? Я думаю, что разрешение ввода оставило бы вас с простым целочисленным сравнением. Может ли быть невозможным участие в конкурсе без учета времени?
Antti29

1
@ Antti29 Честно говоря, я не могу придумать какое-либо хорошее решение, и уже слишком поздно что-либо менять в правилах. Если кто-то не придет с действительно удовлетворяющим предложением, я думаю, что эти системы просто не могут конкурировать здесь. (Я видел вызов в песочнице и не думал об этом. Мой плохой.)
Арно

Ответы:


24

C (Windows), 361 байт

#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);}

раскатали:

#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);
}

Выход:

Выводится когда UTC time >= 2017-12-05-22-00:

Добавьте следующее в код после, d=gmtime(&n);чтобы попробовать это:

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

13
Симпатичные имена переменных!
Адам

16

PHP + SVG (HTML5), 147 137 123 байта

SVG код Нила

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';

Обновление: спасибо Shaggy за помощь в экономии 10 байт.

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

Обновление 2: Умная идея от Ismael Miguel , спасибо за сохранение 14 байтов

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

Обычный

обычный

После 6 декабря +2 часа

после 6 декабря - +2 часа


Так time()дает UTC?
Адам

Когда есть 1512525600?
Адам

1512525600это 2017-12-06T02:00:00+00:00 in ISO 8601@ Adám и да, time () не зависит от часового пояса.
th3pirat3

12

Röda , 252 250 байт

{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>`]}

Попробуйте онлайн!


25
Смелость! Вы решили финский вызов со шведским языком.
Antti29

1
@Arthur Он назван в честь шведского слова, такого по-фински нет. Эта штука содержит финский, потому что я говорю по-фински.
fergusq

1
@ Артур: Боюсь, вам нужно вникнуть в финский настрой, чтобы полностью оценить мой комментарий :)
Antti29

1
@fergusq Ну, если это от человека, который на самом деле назвал язык, то я думаю, что нет более высокого авторитета. Однако, даже зная, что «röda» не является финским словом, я утверждаю, что мой предыдущий комментарий был правдоподобным. Имена языков не должны быть реальными словами. Кроме того, хотя я не могу быть внутри этого, я хорошо знаю об антагонизме, который финны имеют против шведов, с историей оккупации и шведским, обязательным в школах, как одно из нескольких постоянных напоминаний.
Артур

1
@ PaŭloEbermann: к сожалению.
Antti29

11

C #, 407 400 277 байт

Странно, как ForegroundColor =0это разрешено

Сохранено 1 байт благодаря TuukkaX

Сохранено 67 байтов благодаря Адаму

()=>{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);}}

Разряженный для тестирования:

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();
    }
}

для тестирования 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 = 0допускается, потому что литерал 0конвертируется в любой тип перечисления, как написано в спецификации C # .
Джои

9

Mathematica, 129 байт

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}}


до .. после ..
введите описание изображения здесь

введите описание изображения здесь
Вы всегда можете проверить это на Wolfram Sandbox
(вставьте код и нажмите Shift-Enter)


Когда есть 3721507200?
Адам

@ Adám AbsolutimeTime показывает общее количество секунд с начала 1 января 1900 года
J42161217

@Jenny_mathy 1 января 1900 г. какого часового пояса?
Даффи

@Daffy of utc +02: 00
J42161217

9

Python 2 , 247 246 230 210 189 байт

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

Попробуйте онлайн!

Печатает изображение .ppm:

Нормальный флаг

Финляндия

Флаг с 100

Finland100


Можно datetime.utcnow()+timedelta(hours=2)<datetime(2017,12,06)заменить на datetime.utcnow()>=datetime(2017,12,05,22,0,0)что-то подобное?
Адам

Используйте time.gmtimeвместо этого для сравнения кортежей (см. Мой ответ)!
Антти Хаапала

[time.time ()> 1512514800]
Дитер

7

Python 3, 143, 141, 135 байтов

Использует экранирование ANSI для цветов, использует пять пробелов или «100» в качестве цветной строки, поэтому мне не нужно специально печатать «100» где-нибудь на флаге. Длина 5 из-за ширины, потому что 90/5 == 90//5. Используемая строка определяется в строке 1. Затем мы выполняем итерацию 55 round (height), на каждой итерации vзадается строка с цветом [Blue, BrightWhite] и выбранный индекс является логическим row<20 or r>34. Мы снова умножаем этот результат на 5 (размеры по ширине: 25:15:50, поэтому общая ширина равна 90). Затем распечатываем, v + Blue + Blue + Blue + v + v + Blackгде vнаходится синий или яркий белый. Для уточнения печати: ширина v- 25 символов, ширина Blue ( e%44*3) - 15, а ширина v*2- 50.25+15+50равен 90, что является шириной и соответствует размерам, необходимым для выполнения задачи! Довольно грязное резюме, но я думаю, что это лучше, чем ничего.

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
Добро пожаловать на сайт!
Кэрд coinheringaahing

2
Добро пожаловать в PPCG! Я добавил языковой флаг к вашему ответу, и я бы предложил вам добавить базовое описание того, как работает ваша программа - но в остальном отличный ответ :)
Тейлор Скотт

2
@TaylorScott Подойдет! И спасибо, я прятался здесь год или два, но никогда ничего не подавал. Просто не удержался, потому что Финляндии исполняется 100 лет!
FatalError

7

Processing.org / Java 191 188 байт

-3 байта благодаря Кевину Круйссену

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);}

До после


>15125255999999Lможет быть>=15125256e6
Кевин Круйссен

@KevinCruijssen, возможно, его можно сократить, но 15125256e6 - это 15125255815168, что на 37 часов позже
PrincePolka

15125256e6D работает, спасибо
PrincePolka

Хм, 15125256e6это 15125256000000когда я проверить его в Java 8. Но я не знаю Processing.org, поэтому , возможно , это немного отличается или использовать другую версию? Вот TIO с некоторыми базовыми тестами, 15125256e6чтобы убедиться, что он работает в Java 8. Но я рад, что Dпосле того, как это исправит. Рад, что смог помочь. :)
Кевин Круйссен

7

Excel VBA, 120 118 117 байт

Функция анонимного непосредственного окна VBE, которая не принимает и выводит финский флаг, и если Финляндии больше 100 лет a 100на этом флаге. Это сделано в отношении пасхального часового пояса США, поскольку Excel или Excel VBA не могут определить часовой пояс без надстроек или доступа к Интернету.

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

Выход

Если Финляндия моложе 100 лет

Молодой финский

Если Финляндия старше 100 лет

Старофинский

-2 байта для перехода If #12/5/17 19:00#<=Now Then[B2]=100наIf Now>=#12/5/17 19:0#Then[B2]=100

-1 байт для использования, Cellsа не[A1:R11]


2
Кто бы мог подумать, что VBA сможет это сделать. Превосходно.
Floris

3
@Floris, я понял, что когда дело доходит до пиксельной графики, Excel VBA может делать удивительные вещи. : D
Тейлор Скотт

Мне напоминают о записи чего-то в предшественнике VBA (сумасшедший макроязык, который был написан в ячейках листа Excel, по одной строке на ячейку), который делал нечто подобное (создавал двухмерный график интенсивности функции, которую я изучал). Должно быть, это был 1991 год. Спасибо за воспоминания.
Floris

1
@Floris хорошо, это позор - но приятно знать, что кто-то еще знает, кто они такие :)
Тейлор Скотт

1
И если подумать - до 4.0 что-то было ... Я помню, что раздражался, когда все ломалось. Как я был много раз с тех пор. Мастера не обратно-совместимы.
Флорис

5

MATLAB, 133 130 123 байта

3 10 байтов, спасибо за @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

Это использует [0, 51, 128]для синего цвета. Размер изображения 180 × 110 пикселей.

Образец прогона:

введите описание изображения здесь

Пример запуска с текстом (изменение 737035к 0в коде , так что текст отображается в любой день):

введите описание изображения здесь


4

JavaScript (ES5) + SVG (HTML5), 189 179 байт

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, чтобы показать, что требования к цвету выполняются.) Редактировать: 10 байт благодаря @Shaggy. Выходы:

<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


Как это обрабатывает смещение часового пояса, когда работает где-то еще, чем в UTC + 2?
Адам

@ Adám Date.now()в UTC, и я сравниваю его со значением UTC 2017/12/06 00:00:00 UTC+2.
Нил

Можно ли использовать ваш SVG-код в моем php-фрагменте?
th3pirat3

2
@ Адам, я тебе уже говорил?
Нил

1
Замените <path></path>на, <path/>чтобы сохранить несколько байтов.
Лохматый

4

Python 3 с подушкой, 213 212 211 символов (Unix) и 217 216 символов (Portable)

Это версия Unix. После публикации я понял, что время, возвращаемое time()не обязательно, имеет свою эпоху 1 января 1970 года, поэтому оно не обязательно переносимо.

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()

Это переносимый код, размером 4 байта, который он использует для gmtimeсравнения кортежей, поэтому он должен надежно работать и в 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()

Изображения отображаются в окне. Действительно трудно заставить его потреблять меньше символов. Даже time.timeвозвращает floatтак >0x5a273299бы не совсем так правильно, или >0x5a273300будет выключен на микросекунды.

введите описание изображения здесь

введите описание изображения здесь


4

Tcl / Tk , 135 байт

Должен быть запущен в интерактивной оболочке

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}

До 2017/12/06 02:00 по Гринвичу

введите описание изображения здесь

После 2017/12/06 02:00 по Гринвичу

введите описание изображения здесь


4

Java 342 368 361 321 317 (299 + 18) байтов

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);}}

Ungolfed

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);
    }

Результат

Финляндия

кредиты

Оливье Грегуар сэкономил 40 байт для использования лямбды.
4 байта сохранены Кевином Круйссеном для длинного форматирования.
2 байта сохранены пользователем 902383 для шестнадцатеричного форматирования.


1
@jfhcs: К сожалению, таковы были правила. И ... это Java.
Antti29

1
Ах я вижу. Я обновлю свой ответ. Должно быть, я неправильно истолковал правила.
JFH

1
Вы можете заменить trueс с 1>0, argsс a, и может удалить пробелы вокруг =на , P j = new...чтобы сэкономить несколько байт.
Джастин Маринер

1
342 байта (324 байта + 18 байтов import java.awt.*;), с включенным условием.
Оливье Грегуар

1
Ваш текущий ответ имеет несколько недостатков, которые делают его недействительным: 1. нет importвообще. 2. имена переменных не сокращаются: argsмогут быть уменьшены до a. 3. все еще есть дополнительные пробелы, которые содержатся в записи. 4. нет условного отпечатка «100».
Оливье Грегуар

3

VIM, 147

Мне очень нравится этот вызов ☺. © это побег.

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 

введите описание изображения здесь


3

Баш и Имиджмаик, 135

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

введите описание изображения здесь введите описание изображения здесь


1
Лучше использовать арифметическую оценку ((`date +%s`>=1512511200))&&x=100. Обратите внимание, что я переместил одинарные кавычки внутри -drawпараметра, где они не нуждаются в экранировании.
manatwork

2

Императив Тампио , 239 байт (неконкурирующий)

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 изо Сиву avautuu , се näyttää tekstin "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"JA , Jos nykyinen Aika millisekunteina на suurempi Куин 1512511200000 , Niin себе näyttää tekstin"<text y=19>100" .

Онлайн версия

Перевод:

Когда откроется большая страница, на ней будет показан текст, "<svg><path d=180v110 /><path d=M0,40h50V0h30v40h100v30H80v40H50V70H0 fill=#005580 />"и, если текущее время в миллисекундах больше, чем 1512511200000, будет показан текст "<text y=19>100".

SVG был взят из этого ответа th3pirat3 (и Нил, по-видимому).

Эта программа написана в новой версии Tampio, над которой я работаю. Те из вас, кто знает финский, могут видеть, что он почти читабелен. Я отметил ответ как неконкурентный, потому что этот язык был опубликован после этого вызова.

Чтобы запустить эту программу, либо перейдите к онлайн-версии выше, содержащей скомпилированную версию JS программы, либо загрузите компилятор со страницы Github . Чтобы скомпилировать программу, запустите python3 tampio.py -p program.itp >program.html.

Тампио не является языком игры в гольф ни в коем случае, но из-за лучшего кода svg он на самом деле опередил Роду ... Я был немного удивлен.


Это больше походит на это!
Antti29

2

Баш, 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

введите описание изображения здесь введите описание изображения здесь


1

HTML + CSS + Javascript, 339 байт

<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>

Вот то же решение, урезанное до 260 байтов, которое предполагает, что ваш порт просмотра имеет правильное соотношение 18:11.

<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>

Вы можете выбить 0 из отметки времени в любом решении, чтобы увидеть появление «100».


1

HTML + Javascript, 329 байт

Я бесстыдно украл часть проверки даты из @jstnthms. По сути, я просто пишу грубую HTML-таблицу с правильными соотношениями строк / столбцов, thявляющимися синими частями. Проверено на IE и Chrome, а также на 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);">

Может быть в дальнейшем играется чистым javascript (вставьте на консоль) ...?
Дийневала

1

Perl 5, 139 байт

($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

быть запущенным

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'

захватить

соотношение было изменено из-за соотношения символов высота / ширина = 1,66 (5/3) в противном случае с исходным соотношением:

($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

исходное соотношение


1

Ракетка 6.10 с 2htdp / изображением, 202 байта

(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))

Ungolfed:

(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

с текстом введите описание изображения здесь


Вы первый, кто поместил его 100в синюю часть - почти пропустил это.
Antti29

1

Small Basic , 300 байт

Скрипт, который не требует ввода и вывода TextWindowобъекта.

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)

Попробуйте это на SmallBasic.com! Требуется IE / Silverlight

Выход

Показано после 100-го дня независимости Финляндии. Выход


0

ранее сделанный код был сведен к следующему:

HTML, CSS и JavaScript, 1599 байт

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>


Ну, в свою защиту, я бы сказал, что это мой первый раз. Постараюсь сделать более короткий код в будущем.
Раунак Коппикар

Как уже сказал Стивен, это кодовый гольф, и поэтому ваша программа должна быть максимально короткой. Пожалуйста, имейте в виду, что если вы не играете в гольф свою программу (то есть оставляете ее как есть), она подлежит удалению, поскольку в настоящее время она не является серьезным соперником. Наконец, добро пожаловать на сайт!
Caird Coneheringaahing

Конечно. Определенно получит это в гольф как можно скорее
Раунак Коппикар

Отредактировано как предложено
Раунак Коппикар

Вы также можете удалить отступы во всех и удалить новые строки в CSS и HTML. Кроме того, вы можете удалить пробелы между символами в JS (как ===и 100).
NoOneIsHere

0

HTML + JavaScript, 247 байт

<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 байта

Решил попробовать использовать образ Base64, чтобы посмотреть, насколько коротким я смог его получить. Не победитель, но, тем не менее, интересный.

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>`)


Нет необходимости в скобках внутри интерполяции ( ${(…)}${…}); нет необходимости в двойных кавычках вокруг этих значений атрибутов HTML; хотя это и неверно, в большинстве случаев вы можете обрезать отступы кодированных строк base64 знаками равенства (у Firefox, безусловно, нет проблем с его декодированием).
manatwork
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.