http://www.perlmonks.org?node_id=756193


in reply to (Golf) Next second Tuesday

I parsed the output of the cal command for my solution:

cal 3 2009 | perl -anle '$.==1&&do{print};@F=unpack"A3"x7,$_;$.>2&&$F[ +2]=~m/^\s*\d+$/&&++$a==2&&print$F[2];'

If you want to specify the day's shortname (like 'Tu' for Tuesday) I had the slightly longer version:

cal 4 2009 | perl -anle '$.==1&&do{print};@F=unpack"A3"x7,$_;$.==2&&do +{@i{@F}=0..$#F};$.>2&&$F[$i{"Tu"}]=~m/^\s*\d+$/&&++$a==2&&print$F[$i{ +"Tu"}];'

First one counts 82 and the second 121 characters (not counted cal [arguments] | perl -anle and the surrounding single quotes.

Replies are listed 'Best First'.
Re^2: (Golf) Next second Tuesday
by shmem (Chancellor) on Apr 09, 2009 at 21:08 UTC

    well, for that matter, 69 chars not counting 'date '...

    date "+%Y-%m-$(env LC_ALL=C cal|sed 1,2d|cut -c7-8|grep '[0-9]'|sed -n + 2p)"

    ...but the rules say

    if the second Tuesday of the current month has passed, give the second Tuesday of the next month

    so that doesn't qualify either ;-)