আপনার নিজের ডেথ নোট লিখুন


14

কাইরা আপনার সাহায্য প্রয়োজন!


ছক পূরণ করা:

Date [and/or Time]
Name
Gender
Reason

আউটপুট ফরমেট:

<Last Name, First Name> <will die/died> on the <DD><st/nd/rd/th> of <MMM, YYYY> [at <hh:mm:ss TT>].
<He/She> <will die/died> of <Reason>.


বিশদ, বিশদ:


আপনার প্রোগ্রামটি কমপক্ষে নিম্নলিখিত তারিখের ইনপুট ফর্ম্যাটগুলির জন্য অ্যাকাউন্ট করা উচিত:

9 November 2003
9/11/2003
November 9, 2003

সময়ের ফর্ম্যাটগুলি:

hh tt
hh TT
hh:mm tt
hh:mm TT
hh:mm:ss tt
hh:mm:ss TT
HH
HH:mm
HH:mm:ss

নিম্নলিখিত নাম ইনপুট ফর্ম্যাটগুলি:

first        // Stephen
last         // Harper
first last   // Stephen Harper
last, first  // Harper, Stephen


পরীক্ষার কেস:


ইনপুট:

2 September 1973
J.R.R. Tolkien
Male
pneumonia

আউটপুট:

টলকিয়েন, জেআরআর 1973 সালের ২ রা সেপ্টেম্বর মারা যান।

নিউমোনিয়ায় আক্রান্ত হয়ে তিনি মারা যান।


অস্বীকৃতি: তিনি যদি এই তারিখে মারা যায় তবে এটি কিরার দোষ, আমার নয়।

আপডেট: তালিকাভুক্ত তারিখে স্টিফেন হার্পার মারা যান নি

ইনপুট:

21/12/12 23:59:59             // DD/MM/YY HH:mm:ss
Harper, Stephen               // Last, First
Unknown                       // Gender
a heart attack for no reason  // Reason

আউটপুট:

হার্পার, স্টিফেন 21 ডিসেম্বর, 2012 এ 11:59:59 এ মারা যাবেন।

হার্পার, স্টিফেন অকারণে হার্ট অ্যাটাকের কারণে মারা যাবে।



বোনাস:

July 21, 1969 02:56:15 GMT
Armstrong, Neil
Male
poisoned moon cheese

--

January 19, 2038 03:14:08 GMT
Everyone
Unknown
Y2K38

যোগ <st/nd/rd/th>শেষে DDইনপুট জন্য।


আহা আমি কেবল এই সিরিজটি পড়া শেষ করেছি: ডি তখন "অকারণে" "হার্ট অ্যাটাক" হওয়া উচিত নয়?
রাই-

উম, ২ রা সেপ্টেম্বর, ২২/০//11, 2/7/11 নয়;)
রাই-

লিঙ্গটির আউটপুটটিতে কোনও প্রভাব নেই?
পিটার ওলসন

এছাড়াও, আমাদের কি 1970 এর আগে তারিখগুলি গ্রহণ করতে হবে?
পিটার ওলসন

5
কীভাবে আমরা ডিডি / এমএম / ওয়াইওয়াইওয়াই এবং এমএম / ডিডি / ওয়াইওয়াইওয়াইয়ের সাথে ইনপুটটির মধ্যে বিচ্ছিন্ন করব?
পিটার ওলসন

উত্তর:


6

জাভাস্ক্রিপ্ট (561)

এটি সম্ভবত উল্লেখযোগ্যভাবে হ্রাস করা যেতে পারে, তবে এখানে যায়:

i=i.split("\n");d=new Date(i[0]);t=d.getDate();z=t%10;t+=z==1?"st":z==2?"nd":z==3?"rd":"th";m=['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()];y=d.getFullYear();a=d.getHours();b=d.getMinutes();c=d.getSeconds();l=a&&b&&c?" at "+a+":"+b+":"+c:"";g=d>new Date()?"will die":"died";n=i[1].split(" ");n[1]?n[0][n[0].length-1]==","?n=i[1]:n=n[1]+", "+n[0]:n[0];s=i[2]=="Male"?"He":i[2]=="Female"?"She":n;document.write(n+" "+g+" on the "+t+" of "+m+", "+y+l+".<br>"+s+" "+g+" of "+i[3]+".");

নমুনা I / O:

2 September 1973
J.R.R. Tolkien
Male
pneumonia

টলকিয়েন, জেআরআর ১৯ 197৩ সালের ২ রা সেপ্টেম্বর মারা যান। তিনি নিউমোনিয়ায় মারা যান।

January 19, 2038 03:14:08 GMT
Everyone
Unknown
Y2K38

প্রত্যেকে 18 শে জানুয়ারী, 2038 এ 21: 14: 8 এ মারা যাবে। প্রত্যেকে Y2K38 এ মারা যাবে।

জেএসফিডেলে চেষ্টা করে দেখুন ।


শুধু যে i="9 November 2003 03:14:08 GMT\nDouglas Adams\nMale\nI forgot";আমাকে দেয় তা নির্দেশ করতে চান 8th of November
মতিন উলহাক

4
@ মন্টু কারণ এটি আপনার টাইমজোনকে সামঞ্জস্য করে। আপনি যদি GMT টাইমজোনটিতে থাকেন তবে এটি আপনাকে 9 তম দেওয়া উচিত।
পিটার ওলসন

আমি আমার জন্মদিনে মারা গেলে আমি আপনাকে দোষ দিচ্ছি। : পি
nyuszika7h

5

ভিবি.এনইটি, 727 695

ঠিক আছে, কিছুটা গল্ফড প্রয়োজন Option Strict Off

Module M
Sub Main
Dim d=Date.Parse(Console.ReadLine),n=Console.ReadLine,o=Date.Now,g=Console.ReadLine,r=Console.ReadLine,i=n.IndexOf(" "),f=d.Day Mod 10+(d.Day\10=1)*5,a=Array.IndexOf("male|female|he|she|him|her|guy|girl|boy|lady|man|woman".Split("|"), g.ToLower),b="|st|nd|rd".Split("|"),m="|January|February|March|April|May|June|July|August|September|October|November|December".Split("|")
If n.IndexOf(",")<0 Then n=n.Substring(i+1)&", "&n.Substring(0,i)
g=If(a<0,n,If(a Mod 2,"She","He"))
Console.Write("{0} {11} on the {1}{2} of {3}, {4} at {5}:{6:00}:{7:00}.{8}{9} {11} of {10}.",n,d.Day,If(f<4,b(f),"th"),m(d.Month),d.Year,d.Hour,d.Minute,d.Second,vbCrLf,g,r,If(o<d,"will die","died"))
End Sub
End Module

এটি সমস্ত পরীক্ষার ক্ষেত্রে তারিখগুলি গ্রহণ করে এবং অনেক অন্যান্য বিন্যাসকে ধন্যবাদ জানায় Date.Parse। এটি পাশাপাশি অনেক লিঙ্গ গ্রহণ করে (যেমন আপনি দেখতে পাচ্ছেন)। কীরা যদি কেবলমাত্র ব্যক্তির প্রথম বা শেষ নাম রাখার সিদ্ধান্ত নেয় তবে প্রোগ্রামটি ক্রাশ হয়ে যাবে।


দেখে মনে হচ্ছে আপনি কোনও MonthName(d.Month)কল দিয়ে আপনার বিভাজন যুক্তি প্রতিস্থাপন করে বেশ কয়েকটি বাইট ফেলে দিতে পারবেন
টেলর স্কট

2

সিএসআরপ - 463 টি অক্ষর

void Main(){Func<String>c=()=>Console.ReadLine();var d=DateTime.Parse(c());var n=c();if(!n.Contains(",")&&n.Contains(" "))n=n.Split(' ')[1]+", "+n.Split(' ')[0];n+=" ";var g=c().ToLower();g=g.Contains("male")?g.Replace("female","She").Replace("male","He"):"They";var r=c();var f=(DateTime.Now<d);Console.Write(String.Format(n+"{0} on the {1} {2}\n{3} {0} of {4}",(f?"will die":"died"),d.ToString("dddd 'of' MMMM, yyyy"),d.Date==d?"":d.ToString("hh:mm:ss"),g,r));}

1

পিএইচপি, 509 474 462 461 টি অক্ষর

<?for($l=0;$l<4;)$i[$l++]=chop(fgets(STDIN));
putenv('TZ=GMT');
$t=strtotime(preg_match("/(\d+)\/(\d+)\/(\d+)(.*)/",$i[0],$q)?"$q[1]-$q[2]-".($q[3]<100?19+1*($q[3]<70):"").$q[3].$q[4]:$i[0]);
$z=$t<time()?" died":" will die";
$f="jS \of F, Y".($t%86400?" \a\\t g:i:s A":"");
$n=strpos($i[1],',')?$i[1]:explode(" ",$i[1]);
if(is_array($n))$n=$n[1]!=""?$n[1].", ".$n[0]:$n[0];?>
<?=$n."$z on the ".date($f,$t)."\n\n".($i[2][0]==M?He:($i[2][0]==F?She:$n))."$z of ".$i[3];

আমি প্রত্যেকের পরে নতুন লাইন যুক্ত করেছি ;তবে সেগুলি থাকার দরকার নেই বলে সেগুলি গণনা করে নি।
কোডটি জানুয়ারী 19, 2038 03:14:07 এর পরে তারিখগুলি হ'ল কিনা এটি একটি 64 বিট মেশিনে চালিত হবে কিনা তার উপর নির্ভর করে।


1

ভিবিএ, 384 366 বাইট

Golfed

সম্পূর্ণ subরুটিন যা প্রত্যাশিত ধরণের ইনপুট নেয়Variant\String এবং সম্পর্কিত ডাবনোট নোট বার্তা আউটপুট দেয় ভিবিই ইমিডিয়েট উইন্ডোতে

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

Sub x(d,n,g,r)
e=CDate(d)
f=Day(e) Mod 10
w=IIf(e>Now," will die"," died")
i=InStr(1,n," ")
n=IIf(InStr(1,n,","),n,Mid(n,i+1)&", "&Mid(n,1,i-1))
g=LCase(g)
Debug.?n;w" on the "Day(e)Split("th|st|nd|rd","|")(IIf(f>3,0,f))" of "MonthName(Month(e))", "Year(e)IIf(InStr(1,d,":")," at "&TimeValue(d),"")"."vbCr;IIf(g="male","He",IIf(g="female","She",n))w" of "r".
End Sub

বোনাস ভেরিসন, 394 376 বাইট

উপরেরটির সামান্য পরিবর্তিত সংস্করণ যা টাইমজোনগুলি বাদ দিয়ে সমস্ত বোনাস কেস পরিচালনা করে (একচেটিয়াংশ পরিচালনা করার জন্য সংশোধন)

Sub x(d,n,g,r)
e=CDate(d)
f=Day(e) Mod 10
i=InStr(1,n," ")
w=Space(0 ^i)&IIf(e>Now,"will die","died")
n=IIf(InStr(1,n,",")^i,n,Mid(n,i+1)&", "&Mid(n,1,i))
g=LCase(g)
Debug.?n;w" on the "Day(e)Split("th|st|nd|rd","|")(IIf(f>3,0,f))" of "MonthName(Month(e))", "Year(e)IIf(InStr(1,d,":")," at "&TimeValue(d),"")"."vbCr;IIf(g="male","He",IIf(g="female","She",n))w" of "r".
End Sub

ব্যবহার

ভিবিই তাত্ক্ষণিক উইন্ডো থেকে দেখা উদাহরণগুলির সমস্যার ইনপুট এবং আউটপুট ক্রম

?Now
01-Jun-17 1:59:35 PM

x "2 September 1973", "J.R.R. Tolkien", "Male", "pneumonia"
Tolkien, J.R.R. died on the 2nd of September, 1973.
He died of pneumonia.

x "21/12/12 23:59:59", "Harper, Stephen", "Unknown", "a heart attack for no reason"
Harper, Stephen died on the 21st of December, 2012 at 11:59:59 PM.
Harper, Stephen died of a heart attack for no reason.

x "July 21, 1969 02:56:15", "Armstrong, Neil", "Male", "poisoned moon cheese"
Armstrong, Neil died on the 21st of July, 1969 at 2:56:15 AM.
He died of poisoned moon cheese.

## Using Bonus Version

x "January 19, 2038 03:14:08","Everyone","Unknown","Y2K38"
Everyone will die on the 19th of January, 2038 at 3:14:08 AM.
Everyone will die of Y2K38.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.