[HN Gopher] 22-11-22 22:11:22
       ___________________________________________________________________
        
       22-11-22 22:11:22
        
       A palindrome date, time and datetime (:
        
       Author : lun4r
       Score  : 70 points
       Date   : 2022-11-22 20:41 UTC (2 hours ago)
        
       | orliesaurus wrote:
       | happy 22-11-22 everyone, can't wait to wait for 23-11-23
        
         | huhtenberg wrote:
         | 23-11-32 then
        
       | DrNosferatu wrote:
       | Just realized that on 22-11-22, 22:11:22 I had exactly 212 HN
       | karma points - surely the Universe is trying to say something...
        
         | sillysaurusx wrote:
         | Now the question is, would you like to be downvoted to maintain
         | stasis, or try to get to 2112 karma before tomorrow? :)
        
       | bproctor wrote:
       | I still regret missing Michael Scott's 05-05-05 party. It only
       | happens once every billion years.
        
         | aidenn0 wrote:
         | Surely every 100 years?
        
           | chungy wrote:
           | He was quoting Michael Scott.
        
       | timeaway wrote:
       | Unix time 1666666666 happened last month, on October 25th
       | 02:57:46 UTC.
       | 
       | A closer "round" number will be 1670000000, happening next month
       | on December 2nd 16:53:20 UTC.
       | 
       | But for 1700000000 we'll have to wait until next year, November
       | 14th 22:13:20 2023 UTC.
        
       | subarctic wrote:
       | Coming up soon in UTC :)
        
       | coding123 wrote:
       | I wonder if there was a single person in 1922 that had the same
       | thought.
        
         | 31337Logic wrote:
         | ...or last year, on Nov. 12th.
        
           | quickthrower2 wrote:
           | or 11-11-11 11:11:11
           | 
           | or 01-01-01 10:10:10
           | 
           | Interview question: write a program to list them all!
        
             | yamtaddle wrote:
             | > write a program to list them all!
             | 
             | Me: Is it OK if it doesn't print until it's done?
             | 
             | Interviewer: Uh, sure, why not?
             | 
             | Me: while(1){}
             | 
             | Me: Finished. This produces the exact desired output of the
             | program you specified.
             | 
             | Interviewer: GTFO.
        
             | carl_dr wrote:
             | Sounds like a great Code Golf contest.
             | 
             | ruby -e 'require"date";a=DateTime.new(0,1,1,0,0,0);(0..4e9)
             | .each{|d|b=(a+Rational(d,86400));c=b.strftime("%y%m%d%H%M%S
             | ");puts b.strftime("%y-%m-%d %H:%M:%S")if c==c.reverse}'
             | 
             | About the most inefficient anyone could make it, but I
             | think it works!
        
               | lcnPylGDnU4H9OF wrote:
               | Looks like it would be defeated by the dreaded leap
               | second.
        
               | SAI_Peregrinus wrote:
               | They're going away. Resolution 4 of the CGPM 2022[1].
               | They didn't want to deal with having to add a negative
               | leap second, and it looks likely they'd have to if they
               | didn't end them.
               | 
               | [1] https://www.bipm.org/documents/20126/64811223/Resolut
               | ions-20...
        
               | carl_dr wrote:
               | I don't think so. It would be only year 2006 (which map
               | to second 60) which could be a problem, and there wasn't
               | a leap year in that year.
        
               | AkshatJ27 wrote:
               | Some saves: `Rational(d,86400)` -> `d/86400r`
               | 
               | Get rid of the variable `a` since it is used in only one
               | place.
               | 
               | `DateTime.new(0,1,1,0,0,0)` -> `DateTime.new(0,1,1)`
               | 
               | also in newer ruby versions you can use numbered
               | parameters to replace d with _1 and remove `|d|`
               | 
               | Pretty sure there might be some more which i do not see
               | immediately :)
        
               | carl_dr wrote:
               | ruby -e 'require"date";(0..4e9).each{b=DateTime.new(0,1,1
               | )+_1/86400r;c=b.strftime("%y%m%d%H%M%S");puts
               | b.strftime("%y-%m-%d %H:%M:%S")if c==c.reverse}'
               | 
               | 151 bytes (including the ruby -e, down from 174.) Thanks!
        
               | AkshatJ27 wrote:
               | `ruby -e 'require"date";0.upto(4e9){b=DateTime.new(0,1,1)
               | +_1/86400r;c=b.strftime"%y%m%d%H%M%S";p
               | b.strftime"%y-%m-%d %H:%M:%S"if c==c.reverse}'`
               | 
               | 142? Sorry if I broke anything, on phone.
        
               | carl_dr wrote:
               | You need to use puts to avoid quotes being added around
               | the output - so I'll give you 145! I'm on my phone too,
               | I'm impressed I even got something working, you've done
               | brilliantly.
               | 
               | Edit: DateTime.new(0) seems to work. 141.
        
               | AkshatJ27 wrote:
               | ~~`b=DateTime.new(0,1,1)+_1/86400r;`->
               | `b=_1/86400r+DateTime.new 0`~~ oops
        
               | carl_dr wrote:
               | That doesn't work unfortunately, you need the brackets -
               | DateTime has to be on the left.
        
               | AkshatJ27 wrote:
               | ah, my bad.
               | 
               | This should work for 134:
               | 
               | `ruby -r date -e
               | '0.upto(4e9){b=DateTime.new(0)+_1/86400r;puts
               | b.strftime"%y-%m-%d
               | %H:%M:%S"if(c=b.strftime"%y%m%d%H%M%S")==c.reverse}'`
        
               | carl_dr wrote:
               | ruby -rdate -e'b=DateTime.new
               | 0;loop{b+=1/86400r;c=b.strftime"%y%m%d%H%M%S";puts
               | b.strftime"%y-%m-%d %H:%M:%S"if c==c.reverse}'
               | 
               | 127. Script never terminates, but it does display all
               | possibilities, so I think it still passes!
               | 
               | Edit: 126. ruby -rdate -e'b=DateTime.new
               | 0;loop{b+=1/86400r;puts b.strftime"%y-%m-%d
               | %H:%M:%S"if(c=b.strftime"%y%m%d%H%M%S")==c.reverse}'
               | 
               | I think I'm done for the moment, will revisit tomorrow if
               | you can find any further savings!
        
               | [deleted]
        
           | [deleted]
        
       | hirundo wrote:
       | 2022-11-22 22:11:22.02
        
       ___________________________________________________________________
       (page generated 2022-11-22 23:00 UTC)