24 এবং 12 আওয়ার টাইমস


24

এমন কোনও প্রোগ্রাম বা ফাংশন লিখুন যাতে কোনও ইনপুট থাকে না যা এই স্ট্রিংটি 24-ঘন্টা এবং 12-ঘন্টা বার প্রিন্ট করে বা রিটার্ন করে :

00:00 12:00am
01:00  1:00am
02:00  2:00am
03:00  3:00am
04:00  4:00am
05:00  5:00am
06:00  6:00am
07:00  7:00am
08:00  8:00am
09:00  9:00am
10:00 10:00am
11:00 11:00am
12:00 12:00pm
13:00  1:00pm
14:00  2:00pm
15:00  3:00pm
16:00  4:00pm
17:00  5:00pm
18:00  6:00pm
19:00  7:00pm
20:00  8:00pm
21:00  9:00pm
22:00 10:00pm
23:00 11:00pm

স্ট্রিং আউটপুট হতে হবে ঠিক তা এখানে প্রদর্শিত হচ্ছে। একমাত্র ব্যতিক্রমটি হ'ল এটিতে বিকল্পভাবে একটি একক পেছনের নতুন লাইন থাকতে পারে।

সুতরাং আপনার আউটপুট এর MD5 হ্যাশ হওয়া উচিত

827ae6e2dbb1df494930baedb3ee2653

যদি আপনার পেছনের নতুন লাইন না থাকে এবং

cd4c3d18abee9bafb495f390a919a13f

যদি তুমি করো. (যদি আপনার সিস্টেমটি অন্য ধরণের নিউলাইন ব্যবহার করে তবে এটি ঠিক আছে Your

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। টাইব্রেকার এর আগের উত্তর।


উত্তর:


13

বাশ + কোর্টিলস, 43 30

  • @ ইওসোরিয়ানকে 7 টি বাইট সংরক্ষণ করা হয়েছে
  • @ অ্যান্ডারস ক্যাসরগকে 3 বাইট সংরক্ষণ করা হয়েছে
seq 0 23|date -f- +%R\ %l:00%P
  • seq প্রতি লাইনে একটি 0-23 পূর্ণসংখ্যা তৈরি করে।
  • dateপ্রতিটি লাইনের তারিখের সময় হিসাবে ব্যাখ্যা করে। বেয়ার ইন্টিজারগুলি দিনের ঘন্টা হিসাবে স্বীকৃত হওয়ার পক্ষে যথেষ্ট বলে মনে হয় datedateতারপরে উপলভ্য সময় বিন্যাস নির্দিষ্টকরণকারক ব্যবহার করে প্রয়োজনীয় বিন্যাসের সাথে প্রতিটি সময় আউটপুট দেয় ।

অনুমান LANG=Cলোকেল, অনুযায়ী এই মেটা উত্তর

Ideone।


2
আপনি এমনকি মাত্র seq 0 237 বাইটগুলি সংরক্ষণ এবং সংরক্ষণ করতে পারেন
ইয়াসোরিয়ান

1
আর %H:00%Rঅন্য 3. সংরক্ষণ
অ্যান্ডার্স Kaseorg

@ আন্ডারস ক্যাসরগ, না, %Rএকটি শীর্ষস্থানীয় শূন্য সন্নিবেশ করিয়েছে, ওপি দ্বারা চায় নি।
রেক্সকোগিটানস

@rexkogitans একটি নেতৃস্থানীয় শূন্য হয় চেয়েছিলেন (প্রথম কলাম, যা এক আমি যে বিষয়ে কথা বলছি হয়)।
অ্যান্ডারস ক্যাসরগ

@ আন্ডারস ক্যাসরগ, ওহ, আপনি প্রথমটির কথা বলছিলেন ... তবে অবশ্যই আপনি ঠিক বলেছেন। উপরে আমার মন্তব্য সংশোধন করেছেন।
রেক্সকোগিটানস

12

পাইথন 2, 66 বাইট

for i in range(24):print'%02d:00%3d:00%sm'%(i,12+i%-12,'ap'[i>11])

1
মডুলো -12 চালাক!
এরিক আউটগল্ফার

কেউ যদি ভাবছেন: i=0;exec"print'%02d:00%3d:00%cm'%(i,~-i%12+1,97+i/12*15);i+=1;"*24কোডটি তিনটি ভিন্ন উপায়ে পরিবর্তন করে তবে প্রতিটি পরিবর্তন একই দৈর্ঘ্য।
Sp3000

8

সি, 73 বাইট

m(i){for(i=25;--i;)printf("%02d:00%3d:00%cm\n",24-i,12-i%12,"pa"[i/13]);}

mIllIbyte এই উত্তরটি পুনরায় লেখার জন্য একটি বিশেষভাবে ঝরঝরে উপায় পেয়েছে। ধন্যবাদ!


শীতল - আমি কখনই জানতাম না?:
ডিজিটাল ট্রমা

আমি জানতাম না! মজাদার. আমি এটি ঠিক করেছি :)
লিন

আহ, ভাল, ?:আসলে পার্লের নিকটতম সমতুল্য ||, আমি বিশ্বাস করি। সি এর ||মত আরও (a || b) ? 1 : 0
লিন

1
i++,i%12?:12,"ap"[i/12])সিকোয়েন্স পয়েন্টের অভাব রয়েছে। কখন i++ঘটে তা নিশ্চিত হওয়া যায় না । সম্ভবতfor(i=0;i<24;i++) ...i,i%12?:12,"ap"[i/12]...
chux - মনিকা

i++<24ভাল - উত্স কোডে আরও বাইট যোগ করবেন না
anatolyg

6

এমএটিএল, 46 42 34 বাইট

12tEt:qy/t15XObZ"!b16XOhhkw14:X~Z)

পূর্বে, 42 বাইট, 12tEt:q2M/736330+t15XObZ"!b16XOhhkw14:X~Z)এবং 46 বাইট 736330 24t:qw/+t15XO' '24TX"b16XOhhk14: 12X~Z),। অবশ্যই 63৩63৩৩০ এর দরকার ছিল না, এটি ছিল পাগল!

দ্রষ্টব্য: ট্রাইআইটঅনলাইনে কাজ করে না, আমি মনে করি মতলব এবং অক্টোভাস বাস্তবায়নের মধ্যে একটি সামঞ্জস্যের সমস্যা আছে datestr

datestrএকটি তারিখের সংখ্যা উপস্থাপনা নেয় এবং এটিকে তারিখের স্ট্রিং উপস্থাপনায় রূপান্তর করে। দিনের সময়টি সংখ্যার বিভাজনীয় অংশ, তাই ০.০০ করপোরেশন 0 জানুয়ারী, 0000 সময়, 00:00:00, এবং ০.০ জানুয়ারীর সাথে সম্পর্কিত হয়, 0000: 00:00:00 এ। 1/24 সকাল 1 টা, 2/24 2am ইত্যাদি।

ব্যাখ্যা

12t         % push a 12 onto the stack and duplicate
Et          % double the 12 and duplicate the 24 (stack now has 12, 24, 24, bottom to top)
:q          % make vector 1:24 and decrement by 1, stack has 12, 24, 0:23
y           % duplicate second element on stack (24)
/           % divide, for (0:23)/24
t           % duplicate elements
15XO        % string representation of date, 15 specifies format
b           % bubble up element in stack (gets a 24 on top of the stack)
Z"!         % makes a column of 24 spaces, to put between columns of times
b           % bubble up another (0:23)/24 
16XO        % string representation of date, 16 for a different format
hh          % concatenate two time vectors and the column of spaces
k           % convert string to lowercase, because CO gives AM/PM not am/pm
w           % swap elements in stack, that first 12 is now on top
14:         % vector of equally spaced values 1:14
X~          % set exclusive-or, returns [1 2 3 4 5 6 7 8 9 10 11 13 14]
Z)          % get the right columns of the string array to remove extra column of blanks
            % implicit display

এটি Matlab এ কাজ করে তা দেখানোর জন্য, এখানে একটি স্ক্রিনশট রয়েছে

এখানে চিত্র বর্ণনা লিখুন


5

/// , 160 বাইট

/Z/:00 //S/Z //A/:00am
//P/:00pm
/00Z12A01S1A02S2A03S3A04S4A05S5A06S6A07S7A08S8A09S9A10Z10A11Z11A12Z12P13S1P14S2P15S3P16S4P17S5P18S6P19S7P20S8P21S9P22Z10P23Z11P

এটি অনলাইন চেষ্টা করুন!

Ungolfed

00:00 12:00 am
01:00 সকাল 1 টা
02:00 2:00 am
03:00 3:00 am
04:00 সকাল 4:00 টা
05:00 সকাল 5:00 টা
06:00 সকাল 6 টা
07:00 সকাল 7:00 টা
08:00 সকাল 8:00 টা
09:00 সকাল 9 টা
10:00 am সকাল 10 টা
11:00 11:00 am
12:00 12:00 pm
13:00 pm 1:00 pm
14:00 অপরাহ্ন 2:00 pm
15:00 বিকাল 3:00
16:00 বিকাল 4:00
17:00 বিকাল 5:00
18:00 6:00 pm
19:00 7:00 pm
20:00 8:00 pm
21:00 9:00 pm
22:00 10:00 pm
23:00 11:00 pm


মজাদার ঘটনা: :00প্রতিস্থাপনটি করা আরও একটি বাইট দীর্ঘ ... টিআইও
স্টেইনবার্গ

@ সটেনবার্গ এটি কারণ :00একটি 3-বাইট স্ট্রিং যা 3 বার প্রদর্শিত হয়। 3 × 3 = 9, আপনার ক্ষেত্রে প্রতিস্থাপন করতে 3 + 1 + 3 = 7 ব্যয় হয় যেহেতু এটি 1-বাইট ওরফে ব্যবহার করে এবং আপনি এটি 3 বার ব্যবহার করেন, সুতরাং 7 + 3 = 10। 9 <10, সুতরাং আমি এটি প্রতিস্থাপন করব না।
এরিক আউটগল্ফার

5

মারিওল্যাং, 965 834 বাইট

এটি অনলাইনে চেষ্টা করুন

ভাল এটি হাস্যকর জটিল ছিল।

প্রযুক্তিগতভাবে আউটপুট বৈধ হয় তবে অনুশীলনে মারিওল্যাং আউটপুট "n" এর পরিবর্তে "n" এর পরিবর্তে টিওটি আমরা ':' দিয়ে একটি সংখ্যা মুদ্রণ করি

আমি যদি সময়টি পাই তবে আমি অনুমান করি যে আমি টিওতে সঠিকভাবে আউটপুট প্রোগ্রামের একটি (সম্ভবত দীর্ঘতর) সংস্করণ করার চেষ্টা করব

++<>) +++@++++>   [!) >)>((((::(.)::((.))+:+:--(.)::)).).).)+++++++++
++""+ +"=====""====#) "+"============================================
+++)+ +>>+++++- <+<)->+++ ![-).).).))(::)).(:(:)))..(((::)).(:+(:((((<
+>+++ ++"====<( ")")-"!+++#=========================================="
+(+++>++!++)<+( ++++-+++++>
 -))+)=(#==="+( ++++)+++++"==========================================!
 [!!+-[!(+++!!! !+!<+!++!>(((((+:(.))::(((.
==##===#====###=#=#"=##=#"=================<
++++)))+++++++++++++++(((![-).).).)::)).(:))   >
>========================#==================   "
+>+ >
+"+ "=======================================[   =====================#===============[
+!> ! -).).).))(::)).)):+(..(((::)).(:+(((((<++!-).).).))(::)).)):+(.(((::)).(:+(((((<
=#==#======================================="==#======================================

ব্যাখ্যা:

আমাদের এখানে মূল সমস্যাটি হ'ল আমাদের কাছে Na ন্যান চর (নিউলাইন, স্পেস,:, এ, পি, এম)

মারিওল্যাং-এ, চরিত্রটি মুদ্রণের জন্য আমাদের তাদের মূল্যমানের মূল্য প্রয়োজন:

  • newLine 10
  • স্থান 32
  • : 58
  • একটি 97
  • পি 112
  • মি 109

সুতরাং প্রথম কাজটি মেমরি সেট করা:

++<>) +++@++++>   [!) >)> !
++""+ +"=====""====#) "+"==
+++)+ +>>+++++- <+<)->+++ 
+>+++ ++"====<( ")")-"!+++
+(+++>++!++)<+( ++++-+++++
 -))+)=(#==="+( ++++)+++++
 [!!+-[!(+++!!! !+!<+!++!>
==##===#====###=#=#"=##=#"

এটির সাথে স্মৃতিটি দেখতে:

                   v   
  32 58 0 0 97 109 10 0
  _  :      a   m  \n

আমরা রূপান্তরিত হবে একটি মধ্যে পি প্রোগ্রাম বাকি সময়

তারপরে আমরা আসল আউটপুটটি করি:

++<>) +++@++++>   [!) >)>((((::(.)::((.))+:+:--(.)::)).).).)+++++++++
++""+ +"=====""====#) "+"============================================
+++)+ +>>+++++- <+<)->+++ ![-).).).))(::)).(:(:)))..(((::)).(:+(:((((<
+>+++ ++"====<( ")")-"!+++#=========================================="
+(+++>++!++)<+( ++++-+++++>
 -))+)=(#==="+( ++++)+++++"==========================================!
 [!!+-[!(+++!!! !+!<+!++!>(((((+:(.))::(((.
==##===#====###=#=#"=##=#"=================<
++++)))+++++++++++++++(((![-).).).)::)).(:))   >
>========================#==================   "
+>+ >
+"+ "=======================================[   =====================#===============[
+!> ! -).).).))(::)).)):+(..(((::)).(:+(((((<++!-).).).))(::)).)):+(.(((::)).(:+(((((<
=#==#======================================="==#======================================

4

জুলিয়া, 88 71 66 64 বাইট

[@printf "%02d:00%3d:00%cm
" i-11 i%12+1 i>22?112:97for i=11:34]

এটি একটি সম্পূর্ণ প্রোগ্রাম যা একক পেছনের নতুন লাইনের সাথে স্ট্রিংটি মুদ্রণ করে।

এটি অনলাইন চেষ্টা করুন!

স্পেন 3 টি এবং ডেনিসকে 2 ধন্যবাদ 5 বাইট সংরক্ষণ করা!


4

সি # ফাংশন, 100 বাইট

void F(){for(int i=0;i<24;i++){Console.Write($"{i:00}:00 {(i+11)%12+1,2}:00 {(i>11?"p":"a")}m\n");}}

অবরুদ্ধ সংস্করণ:

void F()
{
    for (int i = 0; i < 24; i++)
    {
        Console.Write($"{i:00}:00 {(i + 11)%12 + 1,2}:00 {(i > 11 ? "p" : "a")}m\n");
    }
}

Console.Write() অনেক অক্ষর লাগে!


হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! আমি কিছুটা সি # ব্যবহার করি $তবে স্ট্রিংয়ের ক্ষেত্রে নেতৃস্থানীয় কী করছে?
নন ইনিহির

3
@ নন আইইনহির - এটিকে "স্ট্রিং ইন্টারপোলেশন" বলা হয় এবং এটি সি # 6.0 এ একটি নতুন বৈশিষ্ট্য। আপনি এখানে এ সম্পর্কে আরও পড়তে পারেন https://msdn.microsoft.com/en-us/library/dn961160.aspx
এসটিএলদেব

3

জাভাস্ক্রিপ্ট (ES2015), 147 138 137 134 133 বাইট

((o,x,r)=>{for(i=0;i<24;)b=i%12,c=b||12,o+='0'[r](i<10)+i+++x+' '[r]((c<10)+1)+c+x+(i<13?'a':'p')+"m\n";return o})('',':00','repeat')

লম্বা .স্লাইস () এবং .জয়াইন () থেকে মুক্তি পাওয়ার জন্য আমি এই সংস্করণে স্ট্রিং.রেপিয়াট () পদ্ধতির সুবিধা নিয়েছি এবং লুপের অভ্যন্তরে বর্ধন বাড়িয়েছি।

পূর্ববর্তী সংস্করণ:

((o,x,i)=>{for(;i<24;i++){b=i%12;o+=[`0${i+x}`.slice(-5),(b||12)+x+(i<12?'a':'p')+'m'].join(' '.repeat((b>0&&b<10)+1))+"\n"}return o})('',':00',0)

ট্রেলিং নিউলাইন দিয়ে আউটপুট দেয়। ফায়ারফক্স স্ক্র্যাচপ্যাডে পরীক্ষিত। আইআইএফই-তে আর্গুমেন্টগুলি "ইনপুট নয়" রুল দিয়ে ঠিক আছে কিনা তা নিশ্চিত।

এটি আমার প্রথম জমা, তাই সবাইকে হ্যালো! :)


3

টিএসকিউএল (এসকিউএল সার্ভার 2012) 146 124 121

DECLARE @ DATETIME=0WHILE @<1BEGIN PRINT
CONVERT(char(5),@,108)+' '+LOWER(RIGHT(FORMAT(@,'g'),8))SET @=dateadd(hh,1,@)END

এটি অনলাইন চেষ্টা করুন!

প্রথম প্রচেষ্টা, কিছুটা দীর্ঘ, তবে একটি লাইনার:

SELECT CONVERT(char(5),n,108)+' '+LOWER(RIGHT(FORMAT(n,'g'),8))FROM(SELECT
top 24 dateadd(hh,Number,0)n FROM master..spt_values WHERE'P'=type)x

এটি অনলাইন চেষ্টা করুন!



@ রোসপ্রেসার আবারও আপনি আমাকে সাহায্য করেছেন, এখানে অনেক কিছু
শিখলেন


2

জাভাস্ক্রিপ্ট, 122 বাইট , 120 বাইট

f=j=>j>12?j-12:j;for(i=0;i<24;i++)console.log('%s:00 %s:00%s',i<10?'0'+i:i,i==0?12:f(i)<10?' '+f(i):f(i),i>11?'pm':'am')

সম্পাদনা করুন: ছোট বাগ ফিক্সড + আউটপুট:

00:00 12:00am
01:00  1:00am
02:00  2:00am
03:00  3:00am
04:00  4:00am
05:00  5:00am
06:00  6:00am
07:00  7:00am
08:00  8:00am
09:00  9:00am
10:00 10:00am
11:00 11:00am
12:00 12:00pm
13:00  1:00pm
14:00  2:00pm
15:00  3:00pm
16:00  4:00pm
17:00  5:00pm
18:00  6:00pm
19:00  7:00pm
20:00  8:00pm
21:00  9:00pm
22:00 10:00pm
23:00 11:00pm


2

ভি , 56 53 বাইট

i00:00 23ñYpñH12G$yP13G$pgvó $/am
í/pm
í 0/  
í/12

এটি অনলাইন চেষ্টা করুন!

যেহেতু এটি প্রবেশ করা কঠিন হতে পারে, তাই এখানে একটি বিপরীতমুখী হেক্সডাম্প রয়েছে:

00000000: 6930 303a 3030 201b 3233 f159 7001 f148  i00:00 .23.Yp..H
00000010: 1631 3247 2479 5031 3347 2470 6776 f320  .12G$yP13G$pgv. 
00000020: 242f 616d 0aed 2f70 6d0a ed20 302f 2020  $/am../pm.. 0/  
00000030: 0aed 2f31 320a                           ../12.

একজন noncompeting সংস্করণ 2 খাটো বাইট যদি আপনাদের উভয়ের ঘটনার প্রতিস্থাপন জাভাস্ক্রিপ্টে গার্বেজ হয় G$সঙ্গে L, যা একই হতে অনুমিত ছিল কিন্তু একটি বাগ ছিল।

ব্যাখ্যা:

i00:00<esc>                                     #Enter the starting text.
           23ñYp<C-a>ñ                          #Duplicate and increment 23 times
                      H                         #Move back to the beginning
                       <C-v>12G$y               #Select 12 lines horizontally
                                 P              #Horizontally paste
                                  13G$p         #Move to line 13 and Horizontally paste again
                                       gv       #Reselect the top 12 lines
                                         ó $/am #Replace a space at the end of the line with 'am'

í/pm      #Replace the previous search with 'pm'
í 0/      #Replace "Space+0" with 2 spaces
í/12      #Replace the previous search with "12"

2

05 এ বি 1 ই , 51 50 48 44 42 বাইট

কারুসোমপুটিংয়ের জন্য দুটি বাইট সংরক্ষণ করা হয়েছে

কোড:

24FNgi0}N…:00©ðN12(%12+Dgiðs}®„paN12‹è'mJ,

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

24F                                         # for N in [0...23]
   Ngi0}                                    # if len(N)=1, push 0
        N                                   # push N
         …:00©                              # push ":00" and store a copy in register
             ð                              # push " "
              N12(%12+D                     # push 2 copies of N%(-12)+12
                       giðs}                # if the length of that number is 1, 
                                            # push " " and swap with the number
                            ®               # push ":00" again
                             „pa            # push "pa"
                                N12‹è       # index into that with N<12
                                     'm     # push "m"
                                       J,   # join everything and print with newline

কোডগল্ফ.স্ট্যাকেক্সেঞ্জাওয়েজ.কোশনস / ১০৩৪২২/২ ;)। এখন যে 50 এর নীচে অনুকূলিত করা যেতে পারে কিনা প্রশ্ন হাহা আপ হয়।
ম্যাজিক অক্টোপাস উরন 21

23Ýপরিবর্তে 24L<1 বাইট জন্য। এবং কত দিন ëঅস্তিত্ব আছে? আমি এখন অবধি 05AB1E-তে অন্য বিবৃতিগুলি না জেনে এত বোকা বোধ করি।
যাদু অক্টোপাস উরান

@ কারাসোকম্পুটিং: ধন্যবাদ! অন্যথায় কিছু সময়ের জন্য অস্তিত্ব ছিল, তবে এটি সময়ে বগি ছিল। বিশেষত বাসা বাঁধলে s
এমিগিনা

1

পাওয়ারশেল ভি 2 +, 76 বাইট

0..23|%{"{0:D2}:00{1,3}:00"-f$_,(($_%12),12)[!($_%12)]+('am','pm')[$_-ge12]}

0..23প্রতিটি লুপ থেকে লুপ এবং -fঅপারেটরের সাথে একটি স্ট্রিং সেট করে । প্রথমটি {0:D2}নিশ্চিত করে যে আমরা শূন্যগুলি প্রিপেন্ডড করেছি, দ্বিতীয়টি {1,3}নিশ্চিত করে যে আমাদের মাঝের কলামটির জন্য প্যাডেড স্পেস রয়েছে। {0}এক অনুরূপ $_এর -fঅপারেটর, যখন {1}সিউডো-তিন সাথে সঙ্গতিপূর্ণ যে মধ্যবর্তী তা চয়ন $_%12বা 12কিনা উপর ভিত্তি করে $_%12হয় নন-জিরো বা না (অর্থাত, যদি আমরা আছেন $_=13, এই নির্বাচন করবে 11:00 অপরাহ্ন জন্য)। তারপরে আমরা দৃ conc়ভাবে জানাতে পারি যে অন্য / সিউডো-টের্নারি উপযুক্ত am/ বেছে নেয় pm


দিনের অর্ধ ঘন্টা হারে সারাক্ষণ তালিকার উপরে আমার জবাবের বিপরীতে , সংখ্যাটি নিখরচায় করতে এখানে সংক্ষিপ্ততর হওয়ায় আমরা উল্লেখযোগ্যভাবে সস্তা প্যাডিং পাই। তারিখ ফাংশন ব্যবহার করে এখানে উত্তর 78 বাইটে

0..23|%{(Date -h $_ -f 'HH:00')+(Date -h $_ -f "h:00tt").ToLower().PadLeft(8)}

1

সি ++, 81 79 বাইট

[]{for(time_t t=0,y;t<24;cout<<put_time(gmtime(&y),"%R %l:00%P\n"))y=t++*3600;}

এই using namespace stdকোডটির আগে কোথাও কোথাও প্রয়োজন ।

এটি 0 ... 23 মানগুলিতে লুপ করে। এটি প্রতিটি মানকে 3600 দ্বারা গুণিত করে, একটি tmকাঠামোতে রূপান্তর করে এবং এটি মুদ্রণ করে। মুদ্রণ ফর্ম্যাট %R24 ঘন্টা এবং মিনিট আউটপুট; মুদ্রণ ফর্ম্যাট %lএবং %Pসঠিক 12 ঘন্টা অংশ আউটপুট; তাদের জিএনইউ দরকার

একটি কার্যরত অনলাইন সংস্করণ এখানে


1

রুবি, 66 62 বাইট

0.upto(23){|i| puts "%02d:00%3d:00#{'ap'[i/12]}m"%[i,(i-1)%12+1]}

নতুন সংস্করণ

24.times{|i|puts"%02d:00%3d:00#{'ap'[i/12]}m"%[i,(i-1)%12+1]}

1
24.timesখাটো হয়। আশেপাশের জায়গাগুলির দরকার নেই puts
manatwork

আপনি প্রতিস্থাপন করতে পারেন (i-1)সঙ্গে ~-i2 বাইট জন্য।
জর্ডান


1

স্ক্লিপটিং, 76 বাইট

প্রোগ্রামটি ধরে নিচ্ছে যে ইনপুটটি খালি ( '0'বা কোনও কিছু যা পূর্ণসংখ্যায় রূপান্তরিত হয় 0)।

বাইট গণনাটি ইউটিএফ -16 এনকোডিং ধরেছে।

군 上 ❶ 겠 小 꼀 虛 嗎 ❷ 꾣 갰글 ❷ 결 加 곀 剩 增 ❶ 겠 小 글 虛 嗎 댆밁 ⓷ 꾣갰 ⓷⓼ 곀 小 掘 닐밊 終

Ungolfed:

군 // 23
上 // for loop (goes from 0 to 23 if input is 0)
    ❶겠小꼀虛嗎 // n < 10 ? "0" : ""
    ❷          // n
    꾣갰글      // ":00 "
    ❷결加곀剩增 // k = (n+11) % 12 + 1
    ❶겠小글虛嗎 // k < 10 ? " " : ""
    댆밁       // "pa"
    ⓷         // Pull n to top of stack
    꾣갰       // ":00"
    ⓷         // Pull "pa" to top of stack
    ⓼         // Pull k to top of stack
    곀小掘     // "pa"[k < 10 ? 1 : 0]
    닐밊       // "m\n"
終 // end of for loop

লুপের প্রতিটি পুনরাবৃত্তি স্ট্যাকের উপর প্রচুর ছোট ছোট স্ট্রিং ফেলে; শেষে তারা সমস্ত স্বয়ংক্রিয়ভাবে সংক্ষিপ্ত হয়।


1

জাভাস্ক্রিপ্ট, 97 95 বাইট

এটি স্টারকর্ডারের উত্তরের ভিত্তিতে তৈরি । 2 বাইট উন্নতির জন্য জর্জ রিথকে ধন্যবাদ ।

for(i=0,k=12;i<24;k=i++%12+1)console.log('%s:00 %s:00%sm',i>9?i:'0'+i,k>9?k:' '+k,i>11?'p':'a')

Ungolfed:

for (i=0, k=12; i < 24; k = (i++) % 12 + 1)
    console.log('%s:00 %s:00%sm',
        i > 9 ? i : '0' + i,
        k > 9 ? k : ' ' + k,
        i > 11 ? 'p' : 'a')

আপনি rewriting 2 বাইট সংরক্ষণ করতে পারবেন n < 10যেমন 9 < nএবং তিন ক্ষেত্রেই সোয়াপিং
জর্জ Reith

1

ব্যাচ, 167 বাইট

@echo off
set h=11
set p=a
for /l %%a in (0,1,23)do call:e %%a
exit/b
:e
set a=0%1
set/ah=h%%12+1
set h= %h%
if %1==12 set p=p
echo %a:~-2:00 %h:~-2%:00%p%m

1

কোটলিন , 95 বাইট

এটি নিশ্চিতভাবে উন্নত করা যেতে পারে।

fun p(){for(i in 0..23)println("%02d:00 ${(i+11)%12+1}:00${if(i>12)"p" else "a"}m".format(i))}

0

পিএইচপি, 110 107 বাইট

for($h=0;$h<24;){$m=($h+11)%12+1;echo($h<10?0:"")."$h:00 ".($m<10?" ":"")."$m:00".($h++<12?"a":"p")."m\n";}
বিস্তারিত দেখুন
for ($h=0; $h<24; ) {
  $m = ($h+11) % 12 + 1;
  echo ($h < 10 ?  0  : "") . "$h:00 " .
       ($m < 10 ? " " : "") . "$m:00"  . ($h++ < 12 ? "a" : "p") . "m\n";
}

কিছুটা অবাক, বিটটিকে ($i < 10 ? $s : "") . "$i:00"কোনও ফাংশনে পরিণত করার চেষ্টা করা হয়েছিল, তবে এটি ~ 25 টি অক্ষর যুক্ত করে ক্ষতবিক্ষত করে । না সেখানে যান।


0

সুইফট, 85 বাইট

for x in 0...23{print(String(format:"%02d:00 %2d:00\(x<12 ?"a":"p")m",x,12+x % -12))}

এটি কাজ করে না, কমপক্ষে সুইফট ২.২-এ আমার জন্য নয়। আউটপুট
জাল

আমাকে আপনার ফর্ম্যাট স্ট্রিংটি পরিবর্তন করতে হয়েছিল:String(format: "%02d:00 %2d:00\(x<12 ?"a":"p")m", x, x%12 != 0 ? x%12 : 12)
জাল

0

সি ফাংশন, 82 বাইট

m(i){for(;i<24;printf("%02d:00 %2d:00%cm\n",i,i%12==0?12:i%12,i>11?'p':'a'),i++);}

ব্যবহার, 94 বাইট

m(i){for(;i<24;printf("%02d:00 %2d:00%cm\n",i,i%12==0?12:i%12,i>11?'p':'a'),i++);}main(){m();}

উনগল্ফড, 337 বাইট

#include <stdio.h>
void m(){
    int i,a;
    char c;
    for(i=0;i<24;i++){
        if (i%12==0){
            a = 12;
        }
        else{
            a = i%12;
        }
        if (i>11){
            c = 'p';
        } else{
            c = 'a';
        }
        printf("%02d:00 %2d:00%cm\n",i,a,c);
    }
}
int main(){
    m();
}

এটি উইন্ডোজে কাজ করে:

সতর্কবাণীতে আপনি পুরো প্রোগ্রামটি খুঁজে পেতে পারেন

সি প্রোগ্রাম, 85 বাইট

main(i){for(;i<24;printf("%02d:00 %2d:00%cm\n",i,i%12==0?12:i%12,i>11?'p':'a'),i++);}

i=0ফাংশন সংস্করণের জন্য আপনার প্রাথমিক প্রয়োজন হতে পারে । এবং প্রোগ্রাম সংস্করণটির জন্য, আপনি কোডটি সরাসরি স্টাফ করতে পারেন main- সেখানে কোনও ফাংশন সংজ্ঞায়িত করার দরকার নেই!
anatolyg

ধন্যবাদ! সম্পাদিত !! এফওয়াইআই: ফানসিওন সংস্করণে আপনি যদি এটি প্যারাম ছাড়াই ব্যবহার করেন তবে এটি স্বয়ংক্রিয়ভাবে 0 থেকে শুরু হয়ে গেছে!
গিয়াকোমো গারাবেলো

i%12==0?12:i%12->i%12?i%12:12
chux - মনিকা

"ফানসিওন সংস্করণে আপনি যদি এটি প্যারাম ছাড়াই ব্যবহার করেন তবে এটি স্বয়ংক্রিয়ভাবে 0 থেকে শুরু হয়ে গেছে!" এটি স্ট্যান্ডার্ড সি বলে মনে হচ্ছে না এটি সমর্থন করার জন্য কোনও রেফারেন্স?
chux -

আমি লক্ষ্য করেছি যে এটি আমার উইন্ডোজ সিস্টেমে ইনস্টল করা জিসিসিটিতেই কাজ করে .. লিনাক্স সহ আমার এক বন্ধু আমাকে বলেছিল এটি তার পিসিতে কাজ করে না তবে লিনাক্সের জন্য কীভাবে এটি ঠিক করতে হয় তা আমি জানি না ...
গিয়াকোমো গারাবেলো

0

ফু, 163 বাইট

সুন্দর ব্রুট ফোর্স পদ্ধতির; এখানে কিছু চালাক নয় (আমি কয়েকটি দাগে চেষ্টা করেছিলাম তবে এটি ছোট না হয়ে শেষ হয়ে গেছে), কেবল ফুকে একটি শট দিতে চেয়েছিল। ফু স্বয়ংক্রিয়ভাবে উদ্ধৃতিতে কিছু মুদ্রণ করে। $c10একটি লাইন বিরতি মুদ্রণ। (## ... )বর্তমান ঘর সমান হওয়া পর্যন্ত লুপগুলি ##

"00:00 12:00am"$c10+1(10"0"$i":00  "$i":00am"$c10+1)(12$i":00 "$i":00am"$c10+1)"12:00 12:00pm"$c10+1(22$i":00  ">+1$i<":00pm"$c10+1)(24$i":00 ">+1$i<":00pm"$c10+1)

কিছুটা অবহেলিত:

"00:00 12:00am"$c10+1
(10"0"$i":00  "$i":00am"$c10+1)
(12$i":00 "$i":00am"$c10+1)
"12:00 12:00pm"$c10+1
(22$i":00  ">+1$i<":00pm"$c10+1)
(24$i":00 ">+1$i<":00pm"$c10+1)

এটি অনলাইনে চেষ্টা করুন


0

জাভাস্ক্রিপ্ট (বহিরাগত গ্রন্থাগার ব্যবহার করে - গণনাযোগ্য) (107 বাইট)

_.Range(0,24).WriteLine(x=>((x<10?"0"+x:x)+":00 "+(((h=((x+11)%12)+1))<10?" "+h:h)+":00"+(x<12?"am":"pm")))

লাইব্রেরিতে লিঙ্ক: https://github.com/mvegh1/Eeumerable/

কোডের ব্যাখ্যা: 0 থেকে 23 পর্যন্ত পূর্ণসংখ্যার অ্যারে তৈরি করুন, প্রত্যেকটির জন্য ভবিষ্যদ্বাণী অনুযায়ী একটি লাইন লিখুন। বর্তমান ভ্যালু 10 এর চেয়ে কম কিনা তা পরীক্ষা করে এবং 0 দিয়ে প্যাড দেয়, অন্যথায় বর্তমানের ভালটি ব্যবহার করে। তারপরে এটিতে মিনিটের স্ট্রিং যুক্ত করুন। তারপরে মূলত সামরিক বাহিনীকে সকাল / সন্ধ্যা সময় রূপান্তর করতে একটু কৌশল করে এবং সকাল / সন্ধ্যা 10 বারের চেয়ে কম সময় প্যাডিং পরিচালনা করে।

এখানে চিত্র বর্ণনা লিখুন


0

স্মাইলব্যাসিক, 73 বাইট

FOR H=0TO 23?FORMAT$(%02D:00 %2D:00%Sm",H,(H+11)MOD 12+1,"ap"[H>11])NEXT

কেউ আমার পুরাতনটির চেয়ে আরও ভাল 24-> 12 ঘন্টা সূত্র খুঁজে পেয়েছেন যা 3 বাইট এবং অন্য প্রোগ্রামে 5 বাইট সংরক্ষণ করে


0

পিএইচপি, 67 65 64 বাইট

এটি আইবিএম -850 এনকোডিং ব্যবহার করে।

for(;$i<24;)printf(~┌¤═ø┼¤¤┌╠ø┼¤¤┌îƧ,$i,$i%12?:12,$i++>11?p:a);

আনঙ্কডেড স্ট্রিং সহ (tes 66 বাইট):

for(;$i<24;)printf("%02d:00%3d:00%sm\n",$i,$i%12?:12,$i++>11?p:a);

এভাবে চালান:

php -n -r 'for(;$i<24;)printf(~┌¤═ø┼¤¤┌╠ø┼¤¤┌îƧ,$i,$i%12?:12,$i++>11?p:a);'

বদলান

  • স্প্রিন্ট ফর্ম্যাট উন্নত করে 2 বাইট সংরক্ষণ করা হয়েছে
  • অপ্রয়োজনীয় স্থান থেকে মুক্তি পেয়ে একটি বাইট সংরক্ষণ করা হয়েছে (thx @Titus)

আপনি -nপরিবর্তে ব্যবহার করতে পারেন -d error_reporting=30709am/ এর আগে কোনও স্থান থাকতে হবে না pm। শারীরিক লাইনব্রেক সহ আনইনকোড সংস্করণে একটি বাইট সংরক্ষণ করুন।
তিতাস

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.