পিএইচপি - 115 102 বাইট
155 বাইটে একটি সমাধান (পাঠযোগ্যতার জন্য এখানে 3 লাইনে মোড়ানো):
$a=$argv[1];
$h=($a-($m=($a=($a-($s=($a=($a-($t=($a=($a-($u=$a%1000))/1000)%1000))/1000)%60))/60)%60))/60;
printf("%02d:%02d:%02d:%03d:%03d",$h,$m,$s,$t,$u);
দ্বিতীয় লাইনের গণনাগুলি (ভিতরে থেকে বাইরের দিকে) মাইক্রোসেকেন্ডগুলি দিয়ে শুরু হওয়া উপাদানগুলির সঠিক মানগুলি।
সংক্ষিপ্ত সংস্করণ (১১৪ বাইট, পাঠযোগ্যতার জন্য দুটি লাইনে আবৃত):
$u=$argv[1];$h=($m=($s=($t=$u/1000)/1000)/60)/60;
printf("%02d:%02d:%02d:%03d:%03d",$h,$m%60,$s%60,$t%1000,$u%1000);
এটি ভাসমান পয়েন্ট সংখ্যা ব্যবহার করে মিলি সেকেন্ড, সেকেন্ড, মিনিট এবং ঘন্টাগুলিতে মাইক্রোসেকেন্ডগুলির ইনপুট সংখ্যার গণনা করতে এম্বেডড অ্যাসাইনমেন্টগুলি ব্যবহার করে। মডুলাস অপারেটর ( %
) এবং এর দশমিক সংখ্যা বিন্যাস ( %d
)printf()
পরে তাদের পূর্ণসংখ্যার সংখ্যায় বাধ্য করতে ব্যবহৃত হয় (ভগ্নাংশটি উপেক্ষা করা হয়)।
আরেকটি সমাধান যা তারিখ ফাংশন ব্যবহার করে (১০২ বাইট)
$u=$argv[1];
echo gmdate("H:i:s",strtotime("@".substr($u,0,-6))),":",substr($u,-6,3),":",substr($u,-3);
ঘন্টা: মিনিট: সেকেন্ডের অংশটি পিএইচপি তারিখ ফাংশন gmdate()
এবং দ্বারা পরিচালিত হয়strtotime()
মিলি এবং মাইক্রো সেকেন্ডগুলি ইনপুট মান থেকে স্ট্রিং হিসাবে বের করা হয়।
ব্যবহার:
$ php -r '$u=$argv[1];echo gmdate("H:i:s",strtotime("@".substr($u,0,-6))),":",substr($u,-6,3),":",substr($u,-3);' 7198898787; echo
01:59:58:898:787
hh:mm:ss.000000
সম্ভবত এটি আরও ভাল (এবং সহজ) হতে পারত। তবুও, এখনই এটি পরিবর্তন করা যায় না।