1990 সালে, ব্যবসায়িক কাজে ব্যবহৃত এক বিশেষ ধরনের কম্পিউটার ভাষা কম্পিউটার ইঞ্জিনিয়ারদের তাদের রূপান্তর দ্বারা ছয় অঙ্কের তারিখ ক্ষেত্র প্রসারিত একটি উপায় কাজ YYYDDD
যেখানে YYY
হয় year - 1900
এবং DDD
বছরের দিন [001 to 366]
। এই স্কিমটি সর্বোচ্চ তারিখ বাড়িয়ে দিতে পারে 2899-12-31
।
২৮৯৮ সালে ইঞ্জিনিয়াররা আতঙ্কিত হওয়া শুরু করেছিলেন কারণ তাদের ৯০০ বছরের পুরানো কোড বেসগুলি ব্যর্থ হতে চলেছে। 2898 সাল থেকে, তারা কেবলমাত্র তাদের টাইম মেশিনটি এই অ্যালগরিদম এবং এটি যথাসময়ে ব্যাপকভাবে বাস্তবায়নের কাজটি দিয়ে 1998 সালে একক কোডিনেটর প্রেরণের জন্য ব্যবহার করেছিল:
এমন কোনও স্কিম ব্যবহার করুন
PPQQRR
যেখানে তা যদি 1900 এর দশকের01 ≤ QQ ≤ 12
মানকYYMMDD
তারিখ হয় তবে তবে যদিQQ > 12
এটি2000-01-01
100 বেসের জন্যPP
এবংRR
তবে 87 এর জন্য বেসগুলিতে প্রদর্শিত হয়QQ - 13
।
এই স্কিমটি ২৮৯৯ সাল ছাড়িয়ে অনেক বেশি প্রসারিত এবং মানক তারিখগুলির সাথে পিছনেও সামঞ্জস্যপূর্ণ, সুতরাং বিদ্যমান সংরক্ষণাগারগুলির কোনও সংশোধন করার প্রয়োজন নেই।
কিছু উদাহরণ:
PPQQRR YYYY-MM-DD
000101 1900-01-01 -- minimum conventional date suggested by J. Allen
010101 1901-01-01 -- edge case suggested by J. Allen
681231 1968-12-31 -- as above
991231 1999-12-31 -- maximum conventional date
001300 2000-01-01 -- zero days after 2000-01-01
008059 2018-07-04 -- current date
378118 2899-12-31 -- maximum date using YYYDDD scheme
999999 4381-12-23 -- maximum date using PPQQRR scheme
আপনার চ্যালেঞ্জটি হ'ল PPQQRR
কোনও আইএসও তারিখ হিসাবে ইনপুট এবং আউটপুট হিসাবে গ্রহণ করার জন্য একটি প্রোগ্রাম লিখুন বা ফাংশন YYYY-MM-DD
। ইনপুট পদ্ধতিটি প্যারামিটার, কনসোল বা কমান্ড লাইন হতে পারে, যা সহজ।
আপনার চিত্তবিনোদনের জন্য, এখানে সিওবিএল-85 এ একটি নন-কেপটিং সমাধান রয়েছে:
IDENTIFICATION DIVISION.
PROGRAM-ID. DATE-CONVERSION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 T PIC 9(8).
01 U PIC 9(8).
01 D VALUE '999999'.
05 P PIC 9(2).
05 Q PIC 9(2).
05 R PIC 9(2).
01 F.
05 Y PIC 9(4).
05 M PIC 9(2).
05 D PIC 9(2).
PROCEDURE DIVISION.
IF Q OF D > 12 THEN
MOVE FUNCTION INTEGER-OF-DATE(20000101) TO T
COMPUTE U = R OF D + 100 * ((Q OF D - 13) + 87 * P OF D) + T
MOVE FUNCTION DATE-OF-INTEGER(U) TO F
DISPLAY "Date: " Y OF F "-" M OF F "-" D OF F
ELSE
DISPLAY "Date: 19" P OF D "-" Q OF D "-" R OF D
END-IF.
STOP RUN.
yymmdd
বছরের >=2000
পর বছর ধরে কাজ করে না, এটিই ওয়াই 2 কে পরাজয়ের পুরো পয়েন্ট।
yyyy-mm-dd
ফর্ম্যাটে থাকা দরকার।