12 ঘন্টা সময় রূপান্তর


10

চ্যালেঞ্জ

রূপান্তর এবং একটি 12 ঘন্টা বিন্যাসে একটি সময় মুদ্রণ। HH:MM AM/PM

উদাহরণ

ইনপুট:

  • 'Fri Jun 30 2017 21:14:20 GMT-0700 (PDT)'
  • 'Fri Jun 30 2017 00:10:23 GMT-0700 (PDT)'
  • 'Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)'
  • 'Sat Jun 31 2018 8:06:20 GMT-0700 (PDT)'
  • 'Fri Jul 01 2017 01:14:20 GMT-0700 (PDT)'
  • 'Sat Apr 10 2020 09:06:20 GMT-0700 (PDT)'

Ouput:

  • 9:14 PM
  • 12:10 AM
  • 12:10 PM
  • 08:06 AM
  • 1:14 AM
  • 09:06 AM

ফাইন পয়েন্টস

  • এক অঙ্কের সংখ্যার আগে একটি শূন্য ঠিক আছে , কোনও শূন্যেরও অনুমতি নেই। নিম্নলিখিত উদাহরণ উভয় অনুমোদিত :

    • 9:06 AM

    • 09:06 AM

  • সমস্ত পরীক্ষিত বছরগুলি পরের 999(প্রতিটি বছর ঠিক 4 অঙ্ক হবে)

বিধি


প্রস্তাবিত পরীক্ষার ক্ষেত্রে: 00:10:23 --> 12:10 AMএবং 12:10:23 --> 12:10 PM
আর্নল্ড

আমরা শুরু করছি. আপনি যদি অন্য কিছু দেখতে পান তবে আমার নির্দ্বিধায় পরিবর্তন করা উচিত। পরামর্শের জন্য ধন্যবাদ!
জেকারভার


2
আমরা কি ধরে নিতে পারি যে সময়টি নির্ধারিত সময়টিতে প্রোগ্রামটি চালু হচ্ছে? (যেমন 'Fri Jun 30 2017 21:14:20 GMT-0400 (EDT)'আমার জন্য)
ইটিএইচ প্রোডাকশনগুলি

9
erm, জুন 31 বিদ্যমান নেই। এটা কি সঠিক?
এরিক লেগারগ্রেন

উত্তর:


7

জাভাস্ক্রিপ্ট (ES6), 69 বাইট

d=>new Date(d).toLocaleString(0,{hour:n='numeric',minute:n,hour12:1})


জাভাস্ক্রিপ্ট (ES6), 58 55 বাইট

ধরে নিই আপনি যুক্তরাষ্ট্রে রয়েছেন।

d=>new Date(d).toLocaleTimeString().replace(/:.. /,' ')


জাভাস্ক্রিপ্ট (ES6), 81 78 বাইট

একক অঙ্কের ঘন্টাগুলিতে একটি শীর্ষস্থানীয় 0 আউটপুট দেওয়ার আগে Answerচ্ছিক করা হয়েছিল এবং শীর্ষস্থানীয় 0 টি ছাড়াই পরীক্ষার কেস যুক্ত করা হয়েছিল।

d=>([m,s]=d.slice(16).split`:`,`0${m%12||12}:${s} ${m<12?'A':'P'}M`.slice(-8))


1
আমি পরিবর্তন সম্পর্কে চিন্তা ছিল ${m>12?'P':'A'}Mথেকে ${"AP"[m>12]}M, কিন্তু এটি (মতো একটি পূর্ণসংখ্যা সূচক ভোটদান ছাড়া কাজ করে না |0), যা এটি একই দৈর্ঘ্য তোলে। সুন্দরভাবে গল্ফড
কামোরোসো94

,213 টি বাইট সংরক্ষণ করতে আপনি স্লাইসে বাদ দিতে পারেন ।
রিক হিচকক

এর জন্য 12:10 এএম ফেরত Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)। প্রধানমন্ত্রী হওয়া উচিত। এটিকে পরিবর্তন m>12করা m>11উচিত।
রিক হিচকক

আপনাকে 4 বাইট বাঁচাতে:d=>(new Date(d).toLocaleString(0,{hour:'numeric',minute:'numeric',hour12:1}))
জোকারভার

আসলে, আপনি করতে পারে আসলে নিম্নলিখিত সঙ্গে 25 বাইট সংরক্ষণ করুন:d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
zoecarver

6

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

lambda s:`int(s[15:18])%12`+s[18:21]+'  APMM'[int(s[15:18])>11::2]

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


এটি 4 বছরের কম সংখ্যক বছর ধরে ব্যর্থ হয় (যদিও এটির সাথে কাজ করতে হবে কিনা তা সম্পর্কে আমি নিশ্চিত নই)।
notjagan

আমি মনে করি এটি ঠিক আছে।
জেকারভার

@ নোটজাগান এটি করার দরকার নেই, প্রশ্নে তাই বলে।
ফেডোন

দুঃখিত, দুঃখিত।
ফেডোন

আপনি কি পরিবর্তন int(s[15:18])>11করতে পারেন s[15:18]>"11"?
ETH প্রোডাকশনগুলি

5

sh + coreutils, 22 বাইট

date +%I:%M\ %p -d"$1"

(যদি সেকেন্ডের জন্য অনুমতি দেওয়া হয় তবে date +%r -d"$1"যথেষ্ট হয়।)


চিত্তাকর্ষকভাবে কয়েক বাইট! এছাড়াও খুব ভাল
zoecarver

4

জাভাস্ক্রিপ্ট (ES6), 77 বাইট

ধরে নিই যে বছরের 4 টি সংখ্যা রয়েছে।

s=>`${([,,,h,m]=s.match(/\d./g),x=h%12||12)>9?x:'0'+x}:${m} ${'AP'[h/12|0]}M`

পরীক্ষার মামলা


উপরের মতো, আমি তৈরি এবং উত্তর দেওয়ার জন্য একটি ছোট উপায় খুঁজে পেয়েছি। আমার কোডটি নির্দ্বিধায় ব্যবহার করুন, আমি মনে করি না যে আমার নিজের প্রশ্নের উত্তর দেওয়া সত্যিই ভাড়া। d=>(new Date(d).toLocaleTimeString().replace(/:\d+/,''))
Zoecarver

@ প্রশস্ততা কেবল তখনই কাজ করবে যদি আপনার লোকেল হয় en-USএবং আপনার সময় অঞ্চল হয় GMT-0700 (PDT)। উদাহরণস্বরূপ, এই অনুমানগুলি আমার পক্ষে সত্য নয়।
আর্নল্ড

2

জাপট , 15 বাইট

ÐU¯24)s8 r.³+SS

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

12 বাইট যদি আমরা ধরে নিতে পারি যে কম্পিউটারের স্থানীয় সময়টি দেওয়া হবে:

ÐU s8 r.³+SS

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

ম্যাথী পদ্ধতির, 40 বাইট

tG5 r"^.."_<C?+Z+B:°TnZ)%CÄÃ+" {"AP"gT}M

এটি অনলাইন পরীক্ষা!



1

পিএইচপি, 45 বাইট

উত্তরটি মানবিক কাজের জন্য উন্নত ধন্যবাদ

<?=(new DateTime($argv[1]))->format('h:i A');

প্রথম প্রচেষ্টা:

<? $d=new DateTime($argv[1]);echo$d->format('h:i A');

পিএইচপি সিএলআইয়ের মাধ্যমে ব্যবহারের উদাহরণ:

php d.php "Sat Apr 10 2020 09:06:20 GMT-0700 (PDT)"

এটি আমার প্রথম গল্ফ চেষ্টা


পরিবর্তনশীল জন্য কোন প্রয়োজন নেই $dএবং যে ভাবে আপনি স্পষ্ট পরিত্রাণ পেতে পারেন echo: <?=(new DateTime($argv[1]))->format('h:i A');
manatwork

1

জেলি , 43 বাইট

Ḳ5ịṣ”:Ṗṁ3µV’%12‘Dµ1¦µV>11ị⁾PAµ3¦“0: M”żFṫ-7

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

এটি অতিমাত্রায় খুব দীর্ঘ ! অর্থাৎ জেলি সময় ম্যানিপুলেশনে চুষে দেয়।

সম্পাদনা: আমি পিএইচপি দ্বারা এমনকি আউটগল্ফড!





0

সি #, 145 বাইট

namespace System.Linq{s=>{var d=DateTime.Parse(string.Join(" ",s.Split(' ').Skip(1).Take(4)));return d.ToString("h:mm ")+(d.Hour>11?"PM":"AM");}}

সম্পূর্ণ / ফর্ম্যাট সংস্করণ:

namespace System.Linq
{
    class P
    {
        static void Main()
        {
            Func<string, string> f = s =>
            {
                var d = DateTime.Parse(string.Join(" ", s.Split(' ').Skip(1).Take(4)));

                return d.ToString("h:mm ") + (d.Hour > 11 ? "PM" : "AM");
            };

            Console.WriteLine(f("Fri Jun 30 2017 21:14:20 GMT-0700 (PDT)"));
            Console.WriteLine(f("Fri Jun 30 2017 00:10:23 GMT-0700 (PDT)"));
            Console.WriteLine(f("Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)"));
            Console.WriteLine(f("Fri Jul 01 2017 01:14:20 GMT-0700 (PDT)"));
            Console.WriteLine(f("Sat Apr 10 2020 09:06:20 GMT-0700 (PDT)"));

            Console.ReadLine();
        }
    }
}


0

MATL , 9 বাইট

5:24)16XO

অনলাইনে এমএটিএল এ চেষ্টা করুন ! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

5:24    % Push array [5 6 ... 24]
)       % Implicit input. Get characters at those positions. This
        % removes the first four characters with the day of the week
16      % Push 16
XO      % Convert to date string format 16, which is 'HH:MM PM'
        % Implicitly display

আমাদের কি ব্যাখ্যা থাকতে পারে?
21-15:19 এ সম্পূর্ণরূপে

1
@ টোটালিহুমান অবশ্যই, আমাকে স্মরণ করিয়ে দেওয়ার জন্য ধন্যবাদ। সম্পাদনা করা হয়েছে। মূলত বিল্টিন XOবেশিরভাগ কাজ করে
লুইস মেন্ডো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.