Happy Birthday, Finland! Introduction

As is known, in 2017, Finland celebrates its 100 years of independence. To mark the occasion, it is your job to produce a Finnish flag for everyone's enjoyment.

Challenge

Create a program or a function that produces the flag of Finland (the grey border is there for presentation purposes only):



Flag specifications


The ratio of the flag is 18:11, with the cross being 3 units thick, giving a horizontal ratio set of 5:3:10 and a vertical ratio set of 4:3:4.
The picture must be at least 180 x 110 pixels in size, or in case of ASCII art, 90 x 55 characters.
There is no official RGB colour for the blue, but use the closest approximation of (0, 53, 128). If your system doesn't support RGB values, use blue.
For the white colour, use RGB (255, 255, 255) or white.


Not so fast

As drawing the Finnish national flag would be simpler than last year's Icelandic challenge, we'll have to ramp up the difficulty a bit. Given that Finland's Independence Day is on 6 December, the decimal number 100 must appear somewhere on the flag when the date in Finland (UTC+02:00) is 2017-12-06 or later (your code should not assume that the machine it's running on is set to a particular timezone). Before the date, the number must not be there. The number must be printed in black (RGB (0, 0, 0) or black) but its placement and font parameters are up to you.

An example of such a render (again, ignore the border):



For testing purposes, it would be nice to include two additional versions of your solution, one with a fixed date in the past and one in the future.

Rules

Standard loopholes are forbidden, as are built-in flag images/libraries. Also, your code must not take any input.

Finns don't like small talk, and this is code-golf, so don't waste characters!
C (Windows), 361 bytes

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


Unrolled:

#import &lt;time.h&gt;
#import &lt;windows.h&gt;

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

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

    time(&amp;n);
    d = gmtime(&amp;n);
    n = d-&gt;tm_year&lt;&lt;24 | d-&gt;tm_mon&lt;&lt;16 | d-&gt;tm_mday&lt;&lt;8 | d-&gt;tm_hour;

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


Output:



Output when UTC time &gt;= 2017-12-05-22-00:



Add the following in the code after d=gmtime(&amp;n); to try it:

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