Today is the CenterDay of the week of the next Feb 29thConvert calendar dates to week dates and vice versaWhat date is that again?ValiDate ISO 8601 by RXCreate a Winter Bash 2015 hat reminderHow many weeks?Beat Pure Regular Expressions at Validating ISO 8601 DatesToday in the YOLDASCII Calendar PlannerGet the date of the nth day of week in a given year and month

Why is the ratio of two extensive quantities always intensive?

What is the intuition behind short exact sequences of groups; in particular, what is the intuition behind group extensions?

Etiquette around loan refinance - decision is going to cost first broker a lot of money

Is it inappropriate for a student to attend their mentor's dissertation defense?

What is the word for reserving something for yourself before others do?

Brothers & sisters

Can a rocket refuel on Mars from water?

Why does Kotter return in Welcome Back Kotter

What is going on with Captain Marvel's blood colour?

Is it possible to download Internet Explorer on my Mac running OS X El Capitan?

Blender 2.8 I can't see vertices, edges or faces in edit mode

Is it legal for company to use my work email to pretend I still work there?

Why does the EU insist on the backstop when it is clear in a no deal scenario they still intend to keep an open border?

How much of data wrangling is a data scientist's job?

Facing a paradox: Earnshaw's theorem in one dimension

Is it canonical bit space?

What mechanic is there to disable a threat instead of killing it?

What reasons are there for a Capitalist to oppose a 100% inheritance tax?

Can one be a co-translator of a book, if he does not know the language that the book is translated into?

I Accidentally Deleted a Stock Terminal Theme

Emailing HOD to enhance faculty application

In a Spin are Both Wings Stalled?

Does a druid starting with a bow start with no arrows?

1960's book about a plague that kills all white people



Today is the Center


Day of the week of the next Feb 29thConvert calendar dates to week dates and vice versaWhat date is that again?ValiDate ISO 8601 by RXCreate a Winter Bash 2015 hat reminderHow many weeks?Beat Pure Regular Expressions at Validating ISO 8601 DatesToday in the YOLDASCII Calendar PlannerGet the date of the nth day of week in a given year and month













8












$begingroup$


Given a date as input in any convenient format, output a calendar with that date as the exact center of a five-week window. The header of the calendar must include the two-letter abbreviations for the days of the week (i.e., Su Mo Tu We Th Fr Sa).



For example, given April 2 2019 as input, the output should be



Sa Su Mo Tu We Th Fr
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19


so that the given date is the exact middle of the calendar.



Given February 19 2020, output



Su Mo Tu We Th Fr Sa
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
1 2 3 4 5 6 7


For September 14 1752, show the following:



Mo Tu We Th Fr Sa Su
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 1



  • Input and output can be given by any convenient method.

  • The input is guaranteed non-empty and valid (i.e., you'll never receive "" or Feb 31 etc.).

  • Assume Gregorian calendar for all dates.

  • Leap years must be accounted for.

  • Input dates will range from Jan 1 1600 to Dec 31 2500.

  • You can print it to STDOUT or return it as a function result.

  • Either a full program or a function are acceptable.

  • Any amount of extraneous whitespace is acceptable, so long as the characters line up appropriately.


  • Standard loopholes are forbidden.

  • This is code-golf so all usual golfing rules apply, and the shortest code (in bytes) wins.









share|improve this question









$endgroup$
















    8












    $begingroup$


    Given a date as input in any convenient format, output a calendar with that date as the exact center of a five-week window. The header of the calendar must include the two-letter abbreviations for the days of the week (i.e., Su Mo Tu We Th Fr Sa).



    For example, given April 2 2019 as input, the output should be



    Sa Su Mo Tu We Th Fr
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31 1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19


    so that the given date is the exact middle of the calendar.



    Given February 19 2020, output



    Su Mo Tu We Th Fr Sa
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    1 2 3 4 5 6 7


    For September 14 1752, show the following:



    Mo Tu We Th Fr Sa Su
    28 29 30 31 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 1



    • Input and output can be given by any convenient method.

    • The input is guaranteed non-empty and valid (i.e., you'll never receive "" or Feb 31 etc.).

    • Assume Gregorian calendar for all dates.

    • Leap years must be accounted for.

    • Input dates will range from Jan 1 1600 to Dec 31 2500.

    • You can print it to STDOUT or return it as a function result.

    • Either a full program or a function are acceptable.

    • Any amount of extraneous whitespace is acceptable, so long as the characters line up appropriately.


    • Standard loopholes are forbidden.

    • This is code-golf so all usual golfing rules apply, and the shortest code (in bytes) wins.









    share|improve this question









    $endgroup$














      8












      8








      8


      1



      $begingroup$


      Given a date as input in any convenient format, output a calendar with that date as the exact center of a five-week window. The header of the calendar must include the two-letter abbreviations for the days of the week (i.e., Su Mo Tu We Th Fr Sa).



      For example, given April 2 2019 as input, the output should be



      Sa Su Mo Tu We Th Fr
      16 17 18 19 20 21 22
      23 24 25 26 27 28 29
      30 31 1 2 3 4 5
      6 7 8 9 10 11 12
      13 14 15 16 17 18 19


      so that the given date is the exact middle of the calendar.



      Given February 19 2020, output



      Su Mo Tu We Th Fr Sa
      2 3 4 5 6 7 8
      9 10 11 12 13 14 15
      16 17 18 19 20 21 22
      23 24 25 26 27 28 29
      1 2 3 4 5 6 7


      For September 14 1752, show the following:



      Mo Tu We Th Fr Sa Su
      28 29 30 31 1 2 3
      4 5 6 7 8 9 10
      11 12 13 14 15 16 17
      18 19 20 21 22 23 24
      25 26 27 28 29 30 1



      • Input and output can be given by any convenient method.

      • The input is guaranteed non-empty and valid (i.e., you'll never receive "" or Feb 31 etc.).

      • Assume Gregorian calendar for all dates.

      • Leap years must be accounted for.

      • Input dates will range from Jan 1 1600 to Dec 31 2500.

      • You can print it to STDOUT or return it as a function result.

      • Either a full program or a function are acceptable.

      • Any amount of extraneous whitespace is acceptable, so long as the characters line up appropriately.


      • Standard loopholes are forbidden.

      • This is code-golf so all usual golfing rules apply, and the shortest code (in bytes) wins.









      share|improve this question









      $endgroup$




      Given a date as input in any convenient format, output a calendar with that date as the exact center of a five-week window. The header of the calendar must include the two-letter abbreviations for the days of the week (i.e., Su Mo Tu We Th Fr Sa).



      For example, given April 2 2019 as input, the output should be



      Sa Su Mo Tu We Th Fr
      16 17 18 19 20 21 22
      23 24 25 26 27 28 29
      30 31 1 2 3 4 5
      6 7 8 9 10 11 12
      13 14 15 16 17 18 19


      so that the given date is the exact middle of the calendar.



      Given February 19 2020, output



      Su Mo Tu We Th Fr Sa
      2 3 4 5 6 7 8
      9 10 11 12 13 14 15
      16 17 18 19 20 21 22
      23 24 25 26 27 28 29
      1 2 3 4 5 6 7


      For September 14 1752, show the following:



      Mo Tu We Th Fr Sa Su
      28 29 30 31 1 2 3
      4 5 6 7 8 9 10
      11 12 13 14 15 16 17
      18 19 20 21 22 23 24
      25 26 27 28 29 30 1



      • Input and output can be given by any convenient method.

      • The input is guaranteed non-empty and valid (i.e., you'll never receive "" or Feb 31 etc.).

      • Assume Gregorian calendar for all dates.

      • Leap years must be accounted for.

      • Input dates will range from Jan 1 1600 to Dec 31 2500.

      • You can print it to STDOUT or return it as a function result.

      • Either a full program or a function are acceptable.

      • Any amount of extraneous whitespace is acceptable, so long as the characters line up appropriately.


      • Standard loopholes are forbidden.

      • This is code-golf so all usual golfing rules apply, and the shortest code (in bytes) wins.






      code-golf ascii-art date






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 3 hours ago









      AdmBorkBorkAdmBorkBork

      27.7k466237




      27.7k466237




















          5 Answers
          5






          active

          oldest

          votes


















          1












          $begingroup$


          Wolfram Language (Mathematica), 131 bytes



          (s=#;Grid@Join[StringTake[#,2]&/@ToString/@(DayName[d[s,#]]&/@Range[-3,3]),Partition[Last@d[s,#]&/@Range[-17,17],7]])&
          d=DatePlus


          Try it online!



          I don't know why Grid doesn't work on TIO but this code outputs this



          enter image description here






          share|improve this answer









          $endgroup$












          • $begingroup$
            DayName[s~d~#]
            $endgroup$
            – DavidC
            21 mins ago


















          0












          $begingroup$


          C# (Visual C# Interactive Compiler), 124 bytes





          n=>for(int i=-24;i<18;)Write($"(i<-17?$"n.AddDays(i):ddd".Remove(2,1):n.AddDays(i).Day+""),3"+((46+i++)%7<1?"n":""));


          Try it online!






          share|improve this answer









          $endgroup$




















            0












            $begingroup$


            JavaScript (Node.js), 205 bytes








            f=
            d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
            `

            <input type=date oninput=o.textContent=f(this.value)><pre id=o>





            Try it online! Takes input as a string in YYYY-MM-DD format, but the input field in the snippet displays your local date format.






            share|improve this answer









            $endgroup$












            • $begingroup$
              padStart(2) -> padStart(3), remove the space in the join string for -1 byte
              $endgroup$
              – Embodiment of Ignorance
              25 mins ago



















            0












            $begingroup$


            R, 66 bytes





            function(d,g=format)write(c(g(d+-3:3,"%a"),g(d+-17:17,"%3d")),1,7)


            Try it online!



            Pads date numbers with leading 0s; takes input as a Date, which can be created by using as.Date("YYYY/MM/DD").



            Weirdly short for an R ascii-art answer...






            share|improve this answer









            $endgroup$




















              0












              $begingroup$


              PHP, 197 191 bytes



              $d=date_create($argn)->sub($i=new DateInterval(P17D));$i->d=1;while($x++<35)if($x<8)$h.=substr($d->format(D),0,2).' ';$o.=sprintf('% 2s ',$d->format(j));$d->add($i);echo wordwrap($h.$o,20);


              Try it online!



              Input is STDIN, run with php -nF.



              $ echo April 2 2019|php -nF cal.php



              April 2 2019



              Sa Su Mo Tu We Th Fr 
              16 17 18 19 20 21 22
              23 24 25 26 27 28 29
              30 31 1 2 3 4 5
              6 7 8 9 10 11 12
              13 14 15 16 17 18 19


              February 19 2020



              Su Mo Tu We Th Fr Sa 
              2 3 4 5 6 7 8
              9 10 11 12 13 14 15
              16 17 18 19 20 21 22
              23 24 25 26 27 28 29
              1 2 3 4 5 6 7


              September 14 1752



              Mo Tu We Th Fr Sa Su 
              28 29 30 31 1 2 3
              4 5 6 7 8 9 10
              11 12 13 14 15 16 17
              18 19 20 21 22 23 24
              25 26 27 28 29 30 1





              share|improve this answer











              $endgroup$













                Your Answer





                StackExchange.ifUsing("editor", function ()
                return StackExchange.using("mathjaxEditing", function ()
                StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
                StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
                );
                );
                , "mathjax-editing");

                StackExchange.ifUsing("editor", function ()
                StackExchange.using("externalEditor", function ()
                StackExchange.using("snippets", function ()
                StackExchange.snippets.init();
                );
                );
                , "code-snippets");

                StackExchange.ready(function()
                var channelOptions =
                tags: "".split(" "),
                id: "200"
                ;
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function()
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled)
                StackExchange.using("snippets", function()
                createEditor();
                );

                else
                createEditor();

                );

                function createEditor()
                StackExchange.prepareEditor(
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader:
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                ,
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                );



                );













                draft saved

                draft discarded


















                StackExchange.ready(
                function ()
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182681%2ftoday-is-the-center%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                5 Answers
                5






                active

                oldest

                votes








                5 Answers
                5






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                1












                $begingroup$


                Wolfram Language (Mathematica), 131 bytes



                (s=#;Grid@Join[StringTake[#,2]&/@ToString/@(DayName[d[s,#]]&/@Range[-3,3]),Partition[Last@d[s,#]&/@Range[-17,17],7]])&
                d=DatePlus


                Try it online!



                I don't know why Grid doesn't work on TIO but this code outputs this



                enter image description here






                share|improve this answer









                $endgroup$












                • $begingroup$
                  DayName[s~d~#]
                  $endgroup$
                  – DavidC
                  21 mins ago















                1












                $begingroup$


                Wolfram Language (Mathematica), 131 bytes



                (s=#;Grid@Join[StringTake[#,2]&/@ToString/@(DayName[d[s,#]]&/@Range[-3,3]),Partition[Last@d[s,#]&/@Range[-17,17],7]])&
                d=DatePlus


                Try it online!



                I don't know why Grid doesn't work on TIO but this code outputs this



                enter image description here






                share|improve this answer









                $endgroup$












                • $begingroup$
                  DayName[s~d~#]
                  $endgroup$
                  – DavidC
                  21 mins ago













                1












                1








                1





                $begingroup$


                Wolfram Language (Mathematica), 131 bytes



                (s=#;Grid@Join[StringTake[#,2]&/@ToString/@(DayName[d[s,#]]&/@Range[-3,3]),Partition[Last@d[s,#]&/@Range[-17,17],7]])&
                d=DatePlus


                Try it online!



                I don't know why Grid doesn't work on TIO but this code outputs this



                enter image description here






                share|improve this answer









                $endgroup$




                Wolfram Language (Mathematica), 131 bytes



                (s=#;Grid@Join[StringTake[#,2]&/@ToString/@(DayName[d[s,#]]&/@Range[-3,3]),Partition[Last@d[s,#]&/@Range[-17,17],7]])&
                d=DatePlus


                Try it online!



                I don't know why Grid doesn't work on TIO but this code outputs this



                enter image description here







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 hours ago









                J42161217J42161217

                13.8k21253




                13.8k21253











                • $begingroup$
                  DayName[s~d~#]
                  $endgroup$
                  – DavidC
                  21 mins ago
















                • $begingroup$
                  DayName[s~d~#]
                  $endgroup$
                  – DavidC
                  21 mins ago















                $begingroup$
                DayName[s~d~#]
                $endgroup$
                – DavidC
                21 mins ago




                $begingroup$
                DayName[s~d~#]
                $endgroup$
                – DavidC
                21 mins ago











                0












                $begingroup$


                C# (Visual C# Interactive Compiler), 124 bytes





                n=>for(int i=-24;i<18;)Write($"(i<-17?$"n.AddDays(i):ddd".Remove(2,1):n.AddDays(i).Day+""),3"+((46+i++)%7<1?"n":""));


                Try it online!






                share|improve this answer









                $endgroup$

















                  0












                  $begingroup$


                  C# (Visual C# Interactive Compiler), 124 bytes





                  n=>for(int i=-24;i<18;)Write($"(i<-17?$"n.AddDays(i):ddd".Remove(2,1):n.AddDays(i).Day+""),3"+((46+i++)%7<1?"n":""));


                  Try it online!






                  share|improve this answer









                  $endgroup$















                    0












                    0








                    0





                    $begingroup$


                    C# (Visual C# Interactive Compiler), 124 bytes





                    n=>for(int i=-24;i<18;)Write($"(i<-17?$"n.AddDays(i):ddd".Remove(2,1):n.AddDays(i).Day+""),3"+((46+i++)%7<1?"n":""));


                    Try it online!






                    share|improve this answer









                    $endgroup$




                    C# (Visual C# Interactive Compiler), 124 bytes





                    n=>for(int i=-24;i<18;)Write($"(i<-17?$"n.AddDays(i):ddd".Remove(2,1):n.AddDays(i).Day+""),3"+((46+i++)%7<1?"n":""));


                    Try it online!







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 2 hours ago









                    Embodiment of IgnoranceEmbodiment of Ignorance

                    2,718126




                    2,718126





















                        0












                        $begingroup$


                        JavaScript (Node.js), 205 bytes








                        f=
                        d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
                        `

                        <input type=date oninput=o.textContent=f(this.value)><pre id=o>





                        Try it online! Takes input as a string in YYYY-MM-DD format, but the input field in the snippet displays your local date format.






                        share|improve this answer









                        $endgroup$












                        • $begingroup$
                          padStart(2) -> padStart(3), remove the space in the join string for -1 byte
                          $endgroup$
                          – Embodiment of Ignorance
                          25 mins ago
















                        0












                        $begingroup$


                        JavaScript (Node.js), 205 bytes








                        f=
                        d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
                        `

                        <input type=date oninput=o.textContent=f(this.value)><pre id=o>





                        Try it online! Takes input as a string in YYYY-MM-DD format, but the input field in the snippet displays your local date format.






                        share|improve this answer









                        $endgroup$












                        • $begingroup$
                          padStart(2) -> padStart(3), remove the space in the join string for -1 byte
                          $endgroup$
                          – Embodiment of Ignorance
                          25 mins ago














                        0












                        0








                        0





                        $begingroup$


                        JavaScript (Node.js), 205 bytes








                        f=
                        d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
                        `

                        <input type=date oninput=o.textContent=f(this.value)><pre id=o>





                        Try it online! Takes input as a string in YYYY-MM-DD format, but the input field in the snippet displays your local date format.






                        share|improve this answer









                        $endgroup$




                        JavaScript (Node.js), 205 bytes








                        f=
                        d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
                        `

                        <input type=date oninput=o.textContent=f(this.value)><pre id=o>





                        Try it online! Takes input as a string in YYYY-MM-DD format, but the input field in the snippet displays your local date format.






                        f=
                        d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
                        `

                        <input type=date oninput=o.textContent=f(this.value)><pre id=o>





                        f=
                        d=>[...`012345`].map(r=>[...`0123456`].map(c=>`$new Date(d+864e5*(+c+r*7-24))[+r?`getUTCDate`:`toUTCString`]()`.slice(0,2).padStart(2)).join` `,d=new Date(d.slice(0,2)%4+20+d.slice(2)).getTime()).join`
                        `

                        <input type=date oninput=o.textContent=f(this.value)><pre id=o>






                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered 36 mins ago









                        NeilNeil

                        82.5k745179




                        82.5k745179











                        • $begingroup$
                          padStart(2) -> padStart(3), remove the space in the join string for -1 byte
                          $endgroup$
                          – Embodiment of Ignorance
                          25 mins ago

















                        • $begingroup$
                          padStart(2) -> padStart(3), remove the space in the join string for -1 byte
                          $endgroup$
                          – Embodiment of Ignorance
                          25 mins ago
















                        $begingroup$
                        padStart(2) -> padStart(3), remove the space in the join string for -1 byte
                        $endgroup$
                        – Embodiment of Ignorance
                        25 mins ago





                        $begingroup$
                        padStart(2) -> padStart(3), remove the space in the join string for -1 byte
                        $endgroup$
                        – Embodiment of Ignorance
                        25 mins ago












                        0












                        $begingroup$


                        R, 66 bytes





                        function(d,g=format)write(c(g(d+-3:3,"%a"),g(d+-17:17,"%3d")),1,7)


                        Try it online!



                        Pads date numbers with leading 0s; takes input as a Date, which can be created by using as.Date("YYYY/MM/DD").



                        Weirdly short for an R ascii-art answer...






                        share|improve this answer









                        $endgroup$

















                          0












                          $begingroup$


                          R, 66 bytes





                          function(d,g=format)write(c(g(d+-3:3,"%a"),g(d+-17:17,"%3d")),1,7)


                          Try it online!



                          Pads date numbers with leading 0s; takes input as a Date, which can be created by using as.Date("YYYY/MM/DD").



                          Weirdly short for an R ascii-art answer...






                          share|improve this answer









                          $endgroup$















                            0












                            0








                            0





                            $begingroup$


                            R, 66 bytes





                            function(d,g=format)write(c(g(d+-3:3,"%a"),g(d+-17:17,"%3d")),1,7)


                            Try it online!



                            Pads date numbers with leading 0s; takes input as a Date, which can be created by using as.Date("YYYY/MM/DD").



                            Weirdly short for an R ascii-art answer...






                            share|improve this answer









                            $endgroup$




                            R, 66 bytes





                            function(d,g=format)write(c(g(d+-3:3,"%a"),g(d+-17:17,"%3d")),1,7)


                            Try it online!



                            Pads date numbers with leading 0s; takes input as a Date, which can be created by using as.Date("YYYY/MM/DD").



                            Weirdly short for an R ascii-art answer...







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 24 mins ago









                            GiuseppeGiuseppe

                            17.5k31152




                            17.5k31152





















                                0












                                $begingroup$


                                PHP, 197 191 bytes



                                $d=date_create($argn)->sub($i=new DateInterval(P17D));$i->d=1;while($x++<35)if($x<8)$h.=substr($d->format(D),0,2).' ';$o.=sprintf('% 2s ',$d->format(j));$d->add($i);echo wordwrap($h.$o,20);


                                Try it online!



                                Input is STDIN, run with php -nF.



                                $ echo April 2 2019|php -nF cal.php



                                April 2 2019



                                Sa Su Mo Tu We Th Fr 
                                16 17 18 19 20 21 22
                                23 24 25 26 27 28 29
                                30 31 1 2 3 4 5
                                6 7 8 9 10 11 12
                                13 14 15 16 17 18 19


                                February 19 2020



                                Su Mo Tu We Th Fr Sa 
                                2 3 4 5 6 7 8
                                9 10 11 12 13 14 15
                                16 17 18 19 20 21 22
                                23 24 25 26 27 28 29
                                1 2 3 4 5 6 7


                                September 14 1752



                                Mo Tu We Th Fr Sa Su 
                                28 29 30 31 1 2 3
                                4 5 6 7 8 9 10
                                11 12 13 14 15 16 17
                                18 19 20 21 22 23 24
                                25 26 27 28 29 30 1





                                share|improve this answer











                                $endgroup$

















                                  0












                                  $begingroup$


                                  PHP, 197 191 bytes



                                  $d=date_create($argn)->sub($i=new DateInterval(P17D));$i->d=1;while($x++<35)if($x<8)$h.=substr($d->format(D),0,2).' ';$o.=sprintf('% 2s ',$d->format(j));$d->add($i);echo wordwrap($h.$o,20);


                                  Try it online!



                                  Input is STDIN, run with php -nF.



                                  $ echo April 2 2019|php -nF cal.php



                                  April 2 2019



                                  Sa Su Mo Tu We Th Fr 
                                  16 17 18 19 20 21 22
                                  23 24 25 26 27 28 29
                                  30 31 1 2 3 4 5
                                  6 7 8 9 10 11 12
                                  13 14 15 16 17 18 19


                                  February 19 2020



                                  Su Mo Tu We Th Fr Sa 
                                  2 3 4 5 6 7 8
                                  9 10 11 12 13 14 15
                                  16 17 18 19 20 21 22
                                  23 24 25 26 27 28 29
                                  1 2 3 4 5 6 7


                                  September 14 1752



                                  Mo Tu We Th Fr Sa Su 
                                  28 29 30 31 1 2 3
                                  4 5 6 7 8 9 10
                                  11 12 13 14 15 16 17
                                  18 19 20 21 22 23 24
                                  25 26 27 28 29 30 1





                                  share|improve this answer











                                  $endgroup$















                                    0












                                    0








                                    0





                                    $begingroup$


                                    PHP, 197 191 bytes



                                    $d=date_create($argn)->sub($i=new DateInterval(P17D));$i->d=1;while($x++<35)if($x<8)$h.=substr($d->format(D),0,2).' ';$o.=sprintf('% 2s ',$d->format(j));$d->add($i);echo wordwrap($h.$o,20);


                                    Try it online!



                                    Input is STDIN, run with php -nF.



                                    $ echo April 2 2019|php -nF cal.php



                                    April 2 2019



                                    Sa Su Mo Tu We Th Fr 
                                    16 17 18 19 20 21 22
                                    23 24 25 26 27 28 29
                                    30 31 1 2 3 4 5
                                    6 7 8 9 10 11 12
                                    13 14 15 16 17 18 19


                                    February 19 2020



                                    Su Mo Tu We Th Fr Sa 
                                    2 3 4 5 6 7 8
                                    9 10 11 12 13 14 15
                                    16 17 18 19 20 21 22
                                    23 24 25 26 27 28 29
                                    1 2 3 4 5 6 7


                                    September 14 1752



                                    Mo Tu We Th Fr Sa Su 
                                    28 29 30 31 1 2 3
                                    4 5 6 7 8 9 10
                                    11 12 13 14 15 16 17
                                    18 19 20 21 22 23 24
                                    25 26 27 28 29 30 1





                                    share|improve this answer











                                    $endgroup$




                                    PHP, 197 191 bytes



                                    $d=date_create($argn)->sub($i=new DateInterval(P17D));$i->d=1;while($x++<35)if($x<8)$h.=substr($d->format(D),0,2).' ';$o.=sprintf('% 2s ',$d->format(j));$d->add($i);echo wordwrap($h.$o,20);


                                    Try it online!



                                    Input is STDIN, run with php -nF.



                                    $ echo April 2 2019|php -nF cal.php



                                    April 2 2019



                                    Sa Su Mo Tu We Th Fr 
                                    16 17 18 19 20 21 22
                                    23 24 25 26 27 28 29
                                    30 31 1 2 3 4 5
                                    6 7 8 9 10 11 12
                                    13 14 15 16 17 18 19


                                    February 19 2020



                                    Su Mo Tu We Th Fr Sa 
                                    2 3 4 5 6 7 8
                                    9 10 11 12 13 14 15
                                    16 17 18 19 20 21 22
                                    23 24 25 26 27 28 29
                                    1 2 3 4 5 6 7


                                    September 14 1752



                                    Mo Tu We Th Fr Sa Su 
                                    28 29 30 31 1 2 3
                                    4 5 6 7 8 9 10
                                    11 12 13 14 15 16 17
                                    18 19 20 21 22 23 24
                                    25 26 27 28 29 30 1






                                    share|improve this answer














                                    share|improve this answer



                                    share|improve this answer








                                    edited 15 mins ago

























                                    answered 1 hour ago









                                    gwaughgwaugh

                                    1,998517




                                    1,998517



























                                        draft saved

                                        draft discarded
















































                                        If this is an answer to a challenge…



                                        • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                        • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                          Explanations of your answer make it more interesting to read and are very much encouraged.


                                        • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                        More generally…



                                        • …Please make sure to answer the question and provide sufficient detail.


                                        • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182681%2ftoday-is-the-center%23new-answer', 'question_page');

                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Isabella Eugénie Boyer Biographie | Références | Menu de navigationmodifiermodifier le codeComparator to Compute the Relative Value of a U.S. Dollar Amount – 1774 to Present.

                                        Lioubotyn Sommaire Géographie | Histoire | Population | Notes et références | Liens externes | Menu de navigationlubotin.kharkov.uamodifier« Recensements et estimations de la population depuis 1897 »« Office des statistiques d'Ukraine : population au 1er janvier 2010, 2011 et 2012 »« Office des statistiques d'Ukraine : population au 1er janvier 2011, 2012 et 2013 »Informations officiellesCartes topographiquesCarte routièrem

                                        Mpande kaSenzangakhona Biographie | Références | Menu de navigationmodifierMpande kaSenzangakhonavoir la liste des auteursm