চলাকালীন বর্তমান সময়ের নিকটতম ঘড়ির ইমোজি ফিরিয়ে দিন


20

আমার if/elseপ্রতি 30 মিনিটের জন্য আমার একটি বড় শর্ত থাকতে পারে তবে আমি আরও গণিত এবং ইউনিকোড ভিত্তিক সমাধান খুঁজছি।

এখানে ক্লক ইমোজিস: 🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕜🕝🕞🕟🕠🕡🕢🕣🕤🕥🕦🕧। যদি আপনার যথাযথ রেন্ডারিং সহায়তা না পাওয়া যায় তবে আপনি নীচে সেগুলি দেখতে পারেন (তারা একই ক্রমে নয় এবং তারা আপনি যা দেখেন তার চেয়ে আলাদা হতে পারে) বা ইউনিকোড চার্টে , পৃষ্ঠা 4 এ তারা ইউনিকোড কোডপয়েন্ট U + 1F550 এর সাথে মিল রাখে (ক্লক ইউ + 1F567 (ক্লাস ফ্যাক TWELVE-THIRTY) এর মাধ্যমে ফ্রেস ওয়ান ওলকক

আপনার চ্যালেঞ্জটি হ'ল এমন একটি প্রোগ্রাম লিখুন যা বর্তমান সিস্টেম সময়ের নিকটতম ঘড়ির মুখ ইমোজি বন্ধ করে দেয় (এএম এবং প্রধানমন্ত্রী একইরকম আচরণ করা উচিত)। উদাহরণস্বরূপ যদি সময়টি t[5:15 <t <5:45) হয় তবে আপনি 5:30 ইমোজি প্রদর্শন করবেন 🕠

এটি কোড-গল্ফ, তাই বাইট জেতে সংক্ষিপ্ততম কোড। আপনার কোডটি পরীক্ষা করার জন্য সময়টি সহজেই নির্দিষ্ট করার জন্য আপনি একটি উপায় অন্তর্ভুক্ত করতে চাইতে পারেন।

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

Time   Output  Written
----------------------
11:48  🕛       12:00
3:15   🕞       3:30
9:45   🕙       10:00

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


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

উইন্ডোজ কমান্ড প্রম্পট, ইমোজির :( সমর্থন করে না
stokastic

2
নিয়মগুলি স্পষ্ট করে এবং কোড গল্ফ তৈরি করে এটি আমাদের মানদণ্ডগুলি পূরণ করার চেষ্টা করার জন্য আমি আপনার পোস্টটি সম্পাদনা করেছি। আমি কোনও কিছুর ভুল ব্যাখ্যা দিলে নির্দ্বিধায় এটিকে সম্পাদনা করুন।
নিনজাবিয়ারমোনকি

3
Xx: 15 এবং xx: 45 কে কিভাবে গোল করা উচিত?
পিটার টেলর

1
@ পিটারটেলর যেমন পরীক্ষার ক্ষেত্রে দেখা যায়, তাদেরকে গোল করা উচিত (যেমন 1:45 => 2:00)
নিনজাবিয়ারমোনকি

উত্তর:


9

রুবি - 61 54 বাইট

পাইথন 3 - 79 77 75 74 বাইট

সম্পাদনা: দেখা যাচ্ছে এটি রুবিতে খুব ছোট, কারণ Timeআমদানি করার দরকার নেই এবং পূর্ণসংখ্যা বিভাগটি ডিফল্ট।

a=(Time.now.to_i/900-3)/2%24
puts""<<128336+a/2+a%2*12

পাটিগণিত:

  • Time.now.to_i: দ্বিতীয় যুগের পর থেকে।
  • /900: 15 মিনিটের অংশগুলিতে সময় একত্রিত করুন।
  • -3: -4কারণ অক্ষরগুলি 1 টা বাজে শুরু হয়, +1যাতে নীচের দিকে না গিয়ে কাছাকাছি অর্ধ ঘন্টা পর্যন্ত গোলটি করা হয়।
  • /2: আধ ঘন্টা অংশে একত্রিত।
  • %24: 12 ঘন্টার মধ্যে আধা ঘন্টার বর্তমান বিভাগ পান।
  • a/2 + a%2*12: আধা ঘন্টার অক্ষরের আগে পুরো-ঘন্টা অক্ষরগুলি একটি ব্লকে আসে তার জন্য অ্যাকাউন্ট।

স্থানীয় সময় সংস্করণ, 69 বাইট:

n=Time.now
a=((n.to_i+n.gmtoff)/900-3)/2%24
puts""<<128336+a/2+a%2*12

মূল পাইথন 3 সংস্করণ:

import time
a=int((time.time()/900-3)/2%24)
print(chr(128336+a//2+a%2*12))

বর্তমান সময়ের ইউটিসি প্রিন্ট করে। পাইথন 2 এর chrকেবল 0-255 এবং unichrকেবল 0-65535 গ্রহণ করে । পাইথন 3 /-এ সর্বদা ভাসমান-পয়েন্ট বিভাগ এবং //সর্বদা পূর্ণসংখ্যা বিভাগ।


আপনি এর থেকে ডান বন্ধনী কেটে যাবে 12*(a%2)যদি আপনি এটি অন্যান্য অনুক্রমে করুন: a%2*12
xnor

7

বাশ + কোরিউটিলস, 60 বাইট

date +%I\ 60*%M+45-30/24%%2+2~C*+C8335+0PP|dc|iconv -f ucs-4

ইমোজিগুলি ওএসএক্স টার্মিনালে জরিমানা সরবরাহ করে তবে লিনাক্সের জন্য (উবুন্টু 14.04) আপনাকে করতে হবে sudo apt-get install ttf-ancient-fonts

বিভিন্ন সময় পরীক্ষা -d $timeকরার জন্য ডেট কমান্ড sertোকান। যেমন পরীক্ষার জন্য 12:59:

date -d 12:59 +%I\ 60*%M+45-30/24%%2+2~C*+C8335+0PP|dc|iconv -f ucs-4

5

জাভাস্ক্রিপ্ট - 137 117 107 102 95

এটি সহজেই পরাজিত হতে চলেছে, তবে আমি এখানে যথাসাধ্য চেষ্টা করব।

সম্পাদনা 1 : এখন ইউটিসিতে প্রিন্ট করুন পাইথন উত্তরের মতো 20 বাইট সংরক্ষণ করুন।

সম্পাদনা 2: 10 বাইট সংরক্ষণ করতে পরিবর্তন new Date().getTime()করা Date.now()হয়েছে।

সম্পাদনা 3: 5 টি বাইট সংরক্ষণ করতে পরিবর্তন Math.round(x)করা ~~(x+.5)হয়েছে।

সম্পাদনা 4: অপ্রয়োজনীয় সরানো হয়েছে (এবং &1023)কিছু পুরানো বিকাশের সংস্করণ থেকে বাম যেখানে আমি 7 বাইট সংরক্ষণ করতে আরও ইউনিভার্সাল ইউটিএফ -16 এনকোডিং করেছি।

d=~~(Date.now()/18e5+.5)%24;d+=d<2?24:0;alert(String.fromCharCode(55357,56655+(d%2?23+d:d)/2));

জাভাস্ক্রিপ্ট নেই , ইমোজির জন্য অনুমতি, কিন্তু হল UTF-16 যা তাদের দুটি অক্ষর যেমন এনকোড হবে। ভাগ্যক্রমে, আমরা কেবল তাদের দুটি অক্ষর হিসাবে সংজ্ঞায়িত করতে পারি; প্রথম চরিত্রটিও ধ্রুবক ( 0xD83D), এবং অন্য পরিবর্তনগুলি হয়।

বিকল্প, স্থানীয় সময় প্রিন্ট, 137 132 125:


(d%2?23+d:d)যেমন হয় না তেমন d+d%2*23?
নীল

4

সিজেম, 50 বাইট

"🕐":i~et3=C%60*et4=+30d/mo2m24+24%_2%24*+2/+]:c

অ্যালগরিদমটি সহজ, সময়টি কাছাকাছি ৩০ মিনিটের মতো করে সময় গণনা করুন, 12 টা / পিএম থেকে কত 30 মিনিট কেটে গেছে তা গণনা করুন, যদি সংখ্যাটি বিজোড় হয় তবে তার সাথে 24 যোগ করুন, 2 দ্বারা তল বিভাজক এবং সেই অনেকের দ্বারা প্রাথমিক ইউনিকোড বৃদ্ধি করুন ডান ঘড়ির মুখ পেতে কোড পয়েন্টগুলি।

এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি 12 এর পরিবর্তে 1 এএম / পিএম দিয়ে শুরু করেছেন তাই সেখানে একটি অফসেট নিয়ে যান।

পরীক্ষার উদ্দেশ্যে, নিম্নলিখিত কোডটি ব্যবহার করুন:

3:H;45:M;"🕐":i~HC%60*M+30d/mo2m48+48%_2%24*+2/+]:c

কোথায় 3:H;অংশ বর্তমান ঘন্টা এবং 45:M;অংশ ঘন্টা বর্তমান মিনিট। সহজভাবে প্রতিস্থাপন 3এবং 45পছন্দসই মান সহ।

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

সমস্ত ইউনিকোড অক্ষর আপনার ব্রাউজার এবং ওএস এবং ইনস্টল করা ফন্টের উপর নির্ভর করে অনলাইন সংস্করণে সঠিকভাবে মুদ্রণ করতে পারে না। তবে আমার জন্য, উইন্ডোজ 7 এর সাথে ফায়ারফক্সে সমস্ত মুদ্রণযোগ্য।


@ user23013 ভাল লাগছে !. আমি মনে করি যে আপনার এটি একটি নতুন উত্তর হিসাবে পোস্ট করা উচিত কারণ আমি এতে কোনও গল্ফ করিনি :)
অপটিমাইজার

3

সিজেম, 31 বাইট

"🕐")et5<60b675+30/24%2mdC*++

এটি পরীক্ষা করার জন্য আপনি নিম্নলিখিত প্রোগ্রামের সময়টি পরিবর্তন করতে পারেন:

"🕐")[2014 12 19 22 14 1 901 5 -28800000]5<60b675+30/24%2mdC*++
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.