পাইথন 3-এ টাইম মডিউল। প্রধান পদ্ধতি, টেমপ্লেট, উদাহরণ

প্রায় কোন প্রোগ্রাম সময় ব্যবহার করে. পাইথনে এর জন্য আলাদা লাইব্রেরি তৈরি করা হয়েছে- সময়এটির সাথে বিভিন্ন কর্ম সঞ্চালন করতে ব্যবহৃত হয়। এটি কাজ করার জন্য, এটি প্রথমে কোডের শুরুতে ঘোষণা করতে হবে। এই লাইনটি এর জন্য ব্যবহৃত হয়:

আমদানির সময়

আসুন অনুশীলনে এই মডিউলটি কীভাবে সঠিকভাবে ব্যবহার করতে হয় তার বিভিন্ন বিকল্প বিবেচনা করি। 

যুগের পর থেকে সেকেন্ডের সংখ্যা নির্ধারণ করা

এই কাজটি সম্পন্ন করার জন্য, একটি ফাংশন আছে সময়() যে কোন প্যারামিটার নেয় না। এর রিটার্ন মান হল 1 জানুয়ারী, 1970 থেকে কত সেকেন্ড কেটে গেছে। পাইথনে, এই সময়টিকে একটি যুগের শুরু বলা হয়। অন্তত ইউনিক্স পরিবারের অপারেটিং সিস্টেমে।

উইন্ডোজের জন্য, তারিখটি একই, তবে এই তারিখের আগে নেতিবাচক মানগুলির সাথে সমস্যা হতে পারে। 

ব্যবহৃত সময় অঞ্চল হল UTC.

আমদানির সময়

সেকেন্ড = time.time()

মুদ্রণ ("যুগের পর থেকে সেকেন্ড =", সেকেন্ড)

এই ফাংশনের জটিলতা হল এটি সঠিক তারিখ প্রদর্শন করে না, তবে শুধুমাত্র সেকেন্ডের সংখ্যা। সবার কাছে পরিচিত বিন্যাসে রূপান্তর করতে, আপনাকে সঠিক তথ্য ব্যবহার করতে হবে। এই জন্য, ফাংশন ব্যবহার করা হয় time.ctime()।

স্বাভাবিক বিন্যাসে তারিখ, সময় ফেরত দেওয়া হচ্ছে

স্বাভাবিক বিন্যাসে সময় ফেরত দিতে, একটি পদ্ধতি আছে time.ctime()। বন্ধনীগুলি একটি পরিবর্তনশীল বা একটি সংখ্যা নির্দেশ করে যা যুগের শুরু থেকে অতিক্রান্ত সেকেন্ডের সংখ্যা নির্দেশ করে। এই পদ্ধতিটি তারিখ, বছর, ঘন্টার সংখ্যা, মিনিট, সেকেন্ড এবং সপ্তাহের দিন সহ সমস্ত তারিখ এবং সময়ের বৈশিষ্ট্য প্রদান করে।

এই ফাংশনটি যুক্তি ছাড়াই ব্যবহার করা যেতে পারে। এই ক্ষেত্রে, এটি বর্তমান তারিখ, সময় এবং তাই প্রদান করে।

এখানে একটি কোড স্নিপেট যা এটি প্রদর্শন করে।

আমদানির সময়

মুদ্রণ(time.ctime())

মঙ্গলবার 23 অক্টোবর 10:18:23 2018

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

class time.struct_time

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

এটি নিম্নলিখিত বৈশিষ্ট্যগুলি নিয়ে গঠিত।পাইথন 3-এ টাইম মডিউল। প্রধান পদ্ধতি, টেমপ্লেট, উদাহরণ

মনোযোগ! অন্যান্য প্রোগ্রামিং ভাষার মত নয়, এখানে মাসটি 1 থেকে 12 পর্যন্ত হতে পারে, শূন্য থেকে 11 পর্যন্ত নয়।

একটি নির্দিষ্ট বিন্যাস ফেরত

ফাংশন ব্যবহার করে strftime() আপনি পৃথকভাবে বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ড পেতে পারেন এবং সেগুলিকে একটি পাঠ্য স্ট্রিংয়ে ফেরত দিতে পারেন। তারপর এটি ফাংশন ব্যবহার করে ব্যবহারকারীর কাছে প্রিন্ট করা যেতে পারে ছাপা () বা অন্যথায় প্রক্রিয়া করা হয়।

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

এখানে কোড স্নিপেট আছে যেখানে আমরা এটা করি।

আমদানির সময়

name_tuple = time.localtime() # struct_time পান

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», name_tuple)

মুদ্রণ(টাইম_স্ট্রিং)

আপনি এই কোডটি চালালে, বর্তমান তারিখ এবং সময় প্রদর্শিত হবে। উপাদানগুলির বিন্যাস এবং ক্রম পরিবর্তন করা যেতে পারে। অনুসরণ হিসাবে তারা:

  1. %Y বছর।
  2. %m হল মাস।
  3. %d – দিন।
  4. % H - সময়।
  5. %M – মিনিট।
  6. %S - সেকেন্ড।

তদনুসারে, আপনি এটি তৈরি করতে পারেন যাতে আউটপুট একচেটিয়াভাবে মাস এবং দিনের হয়। এটি করার জন্য, আপনাকে কেবল বছরটি প্রদর্শন করার জন্য একটি কমান্ড দেওয়ার দরকার নেই। অর্থাৎ, উপরের সূত্রে একটি আর্গুমেন্ট %m/%d হিসাবে লিখুন, এবং এটাই। অথবা এর বিপরীতে, %d/%m। 

আসলে, স্ট্রিং লিটারেলের সংখ্যা অনেক বেশি। এখানে একটি টেবিল যেখানে তারা বিস্তারিত বর্ণনা করা হয়.পাইথন 3-এ টাইম মডিউল। প্রধান পদ্ধতি, টেমপ্লেট, উদাহরণ

একটি নির্দিষ্ট সংখ্যক সেকেন্ডের জন্য একটি থ্রেড স্থগিত করুন

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

একটি যুক্তি হিসাবে, পদ্ধতিটি একটি মান ব্যবহার করে যা অ্যালগরিদম থেকে পরবর্তী ধাপে বিলম্ব করতে সেকেন্ডের সংখ্যা প্রকাশ করে।

উদাহরণস্বরূপ, এই স্নিপেটে, বিলম্ব 10 সেকেন্ড।

আমদানির সময়

বিরতি = 10

মুদ্রণ ("প্রোগ্রাম শুরু হয়েছে...")

সময় ঘুম (বিরতি)

মুদ্রণ(str(বিরতি) + » সেকেন্ড কেটে গেছে।»)

ফলস্বরূপ, আমরা এটি পাব:

কর্মসূচি শুরু হয়েছে…

10 সেকেন্ড কেটে গেছে।

আমরা আউটপুট থেকে দেখতে পাচ্ছি, প্রোগ্রামটি প্রথমে রিপোর্ট করে যে এটি শুরু হয়েছে। এবং দশ সেকেন্ড পরে, তিনি লিখেছিলেন যে এই সময়টি কেটে গেছে।

ফাংশনটি আপনাকে মিলিসেকেন্ডে বিরতির সময়কাল নির্দিষ্ট করতে দেয়। এটি করার জন্য, আমরা ফাংশন আর্গুমেন্টের ভগ্নাংশ মান ব্যবহার করি ঘুম. উদাহরণস্বরূপ, 0,1। এর মানে হল যে বিলম্ব হবে 100 মিলিসেকেন্ড।

স্থানীয় সময় পান

localtime() ফাংশন ব্যবহার করে, প্রোগ্রামটি একটি নির্দিষ্ট সময় অঞ্চলে যুগ শুরু হওয়ার পর থেকে সেকেন্ডের সংখ্যা পায়। 

স্বচ্ছতার জন্য একটি উদাহরণ কোড দেওয়া যাক।

আমদানির সময়

ফলাফল = time.localtime(1575721830)

মুদ্রণ ("ফলাফল:", ফলাফল)

মুদ্রণ(«nгод:», result.tm_year)

প্রিন্ট («tm_hour:», result.tm_hour)

যুগ থেকে সেকেন্ডের সংখ্যার উপর ভিত্তি করে UTC-এ struct_time ফেরত দিন

এই কাজটি time.gmtime() ব্যবহার করে অর্জন করা হয়। পদ্ধতি একটি উদাহরণ দিলে বিষয়টি পরিষ্কার হবে।

আমদানির সময়

ফলাফল = time.gmtime(1575721830)

মুদ্রণ ("ফলাফল:", ফলাফল)

মুদ্রণ(«nгод:», result.tm_year)

প্রিন্ট («tm_hour:», result.tm_hour)

আপনি যদি কর্মের এই ক্রমটি চালু করেন, তাহলে সময়, বছর এবং সময় অঞ্চল সম্পর্কিত উপাদানগুলির একটি সেট প্রদর্শিত হবে।

স্থানীয় সময়ে স্বয়ংক্রিয় রূপান্তর সহ যুগের শুরু থেকে সেকেন্ডের সংখ্যা ফেরত দিন

আপনি যদি এই জাতীয় কাজের মুখোমুখি হন তবে এটি পদ্ধতি ব্যবহার করে প্রয়োগ করা হয় mktime()যা লাগে struct_time. এর পরে, এটি ফাংশনের বিপরীত ক্রিয়া সম্পাদন করে স্থানীয় সময়(). অর্থাৎ, এটি স্থানীয় সময় অঞ্চল অনুসারে সময়কে যুগের শুরু থেকে অতিক্রান্ত সেকেন্ডের সংখ্যায় রূপান্তর করে, সময় অঞ্চলের জন্য সামঞ্জস্য করে।

mktime() এবং localtime() ফাংশন ঘনিষ্ঠভাবে জড়িত। এই কোড স্নিপেট স্পষ্টভাবে এটি প্রদর্শন করে. আসুন এটি কীভাবে কাজ করে তা আরও গভীরভাবে বোঝার জন্য এটি একবার দেখে নেওয়া যাক। 

আমদানির সময়

সেকেন্ড = 1575721830

# struct_time ফেরত দেয়

t = time.localtime(সেকেন্ড)

মুদ্রণ(«t1: «, t)

# struct_time থেকে সেকেন্ড রিটার্ন করে

s = time.mktime(t)

মুদ্রণ («এনএস:», সেকেন্ড)

আমরা যে পরিবর্তনশীল দেখতে সেকেন্ড যুগ থেকে 1575721830 সেকেন্ড বরাদ্দ করা হয়েছে। প্রথমত, প্রোগ্রামটি সঠিক তারিখ, সময় এবং অন্যান্য পরামিতি পায়, এই মানের উপর ভিত্তি করে, এটি একটি পরিবর্তনশীল মধ্যে রাখুন t, এবং তারপর একটি পরিবর্তনশীল মধ্যে তার বিষয়বস্তু রূপান্তরিত s.

এর পরে একটি নতুন লাইন বিট করে এবং কনসোলে সেকেন্ডের সংখ্যা প্রদর্শন করে। আপনি পরীক্ষা করতে পারেন যে এটি একই নম্বর হবে যা সেকেন্ড ভেরিয়েবলে বরাদ্দ করা হয়েছিল।

9টি সংখ্যা থেকে আউটপুট তারিখ যা struct_time উল্লেখ করে

ধরুন আমাদের কাছে 9টি সংখ্যা রয়েছে যা বছর, মাস, তারিখ, সপ্তাহের দিন এবং অন্যান্য মানগুলির একটি সংখ্যাকে প্রতিনিধিত্ব করে এবং আমাদের তাদের একটি স্ট্রিংয়ে একত্রিত করতে হবে। এই জন্য, ফাংশন ব্যবহার করা হয় asctime(). তিনি গ্রহণ বা প্রস্তুত গঠন_সময়, বা 9টি মানের অন্য কোনো টিপল যা একই রকম। এর পরে, একটি স্ট্রিং ফেরত দেওয়া হয়, যা একটি তারিখ, সময় এবং অন্যান্য পরামিতিগুলির একটি সংখ্যা। 

একটি একক ভেরিয়েবলের মধ্যে অসম ব্যবহারকারী-নির্দিষ্ট ডেটা আনার জন্য এই পদ্ধতিটি ব্যবহার করা খুবই সুবিধাজনক।.

উদাহরণস্বরূপ, এটি এমন একটি প্রোগ্রাম হতে পারে যেখানে ব্যবহারকারী পৃথকভাবে দিন, মাস, বছর, সপ্তাহের দিন এবং একটি ইভেন্টের নিবন্ধন সংক্রান্ত অন্যান্য ডেটা নির্দিষ্ট করে। এর পরে, প্রাপ্ত তথ্য ডাটাবেসে প্রবেশ করা হয় এবং তারপরে এটির অনুরোধকারী অন্য ব্যক্তির কাছে জারি করা হয়।

পাইথন স্ট্রিং এর উপর ভিত্তি করে সময় এবং তারিখ পাওয়া

ধরুন ব্যবহারকারী অসমান ডেটা নির্দিষ্ট করেছেন, এবং আমাদের সেগুলিকে এক লাইনে একত্রিত করতে হবে যে বিন্যাসে ব্যক্তিটি প্রবেশ করেছে, এবং তারপর অন্য একটি পরিবর্তনশীলে একটি অনুলিপি তৈরি করতে হবে এবং সেখানে এটিকে একটি আদর্শ বিন্যাসে পুনর্নির্মাণ করতে হবে। এই জন্য, ফাংশন ব্যবহার করা হয় time.strptime()।

এটি একটি ভেরিয়েবল নেয় যেখানে এই মানটি নির্দিষ্ট করা হয় এবং আমাদের কাছে ইতিমধ্যে পরিচিতটি ফেরত দেয় struct_time.

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

আমদানির সময়

time_string = «15 জুন, 2019»

ফলাফল = time.strptime(time_string, «%d %B, %Y»)

মুদ্রণ (ফলাফল)

আউটপুট কি হবে অনুমান? নীচের লাইনটি না দেখে অনুমান করার চেষ্টা করুন। এবং তারপর উত্তর চেক করুন.

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)

এক কথায়, পাইথনে তারিখ এবং সময় নিয়ে কাজ করা মোটেও কঠিন নয়। এই নির্দেশাবলী অনুসরণ করা যথেষ্ট, এবং সবকিছু কার্যকর হবে। লাইব্রেরি ব্যবহার করে সময় ব্যবহারকারী সময়ের সাথে কাজ করার জন্য বিপুল সংখ্যক সুযোগ পান, যেমন:

  1. একটি নির্দিষ্ট সময়ের জন্য প্রোগ্রাম এক্সিকিউশন স্থগিত করুন।
  2. যুগের পর থেকে যে সময় অতিবাহিত হয়েছে সেকেন্ডে দেখাও। এই তথ্যটি সময়ের যোগফল বা অন্যান্য গাণিতিক ক্রিয়াকলাপ সম্পাদন করতে ব্যবহার করা যেতে পারে।
  3. একটি সুবিধাজনক বিন্যাসে রূপান্তর করুন। তদুপরি, প্রোগ্রামার নিজেই সেট করতে পারেন কোন উপাদানগুলি প্রদর্শিত হবে এবং কী ক্রম অনুসারে। 

এছাড়াও আরও অনেকগুলি সম্ভাবনা রয়েছে, তবে আজ আমরা সবচেয়ে মৌলিকগুলি বিশ্লেষণ করেছি। তারা প্রায় যেকোনো প্রোগ্রামে কাজে আসবে যা একরকম সময়ের সাথে কাজ করে। শুভকামনা।

নির্দেশিকা সমন্ধে মতামত দিন