জোদা-সময়: পিরিয়ড, ব্যবধান এবং সময়কালের মধ্যে পার্থক্য কী?


192

ইন Joda-টাইম 2, সময় ধারন তিন ধরণের মধ্যে পার্থক্য কি:

  • কাল
  • অন্তর
  • স্থিতিকাল

    1. আমাদের তিনটি ক্লাস কেন দরকার?

    2. কোনটি আরও ভাল অভিনয় করে?

    3. কেন বিভাজক একটি নির্দিষ্ট সময়ের বা সময়কাল বা ব্যবধান উদাহরণস্বরূপ না বাস্তবায়িত? যেমনp = p.divideBy(2);


3
মনে রাখবেন যে এই তারিখ-সময় পরিভাষাটি এখনও মানক করা হয়নি। আইএসও-8601 একটি মান এর ধারণা সময়কাল কি Joda-টাইম একটি বিবেচনা করা হয় Period। এ জাতীয় পরিভাষা মানিক করার প্রস্তাব উত্থাপন করা হয়েছে তবে এখনও তা সম্পন্ন হয়নি।
তুলসী বাউরক

উত্তর:


246

3 টি ক্লাসের প্রয়োজন কারণ তারা বিভিন্ন ধারণার প্রতিনিধিত্ব করে তাই আপেক্ষিক পারফরম্যান্সের পরিবর্তে কাজের জন্য উপযুক্তটি বাছাইয়ের বিষয়টি। ইটালিকসে আমার দ্বারা যুক্ত মন্তব্য সহ ডকুমেন্টেশন থেকে :


একটি বিরতি Joda টাইমে অন্য তাত্ক্ষণিক এক মিলিসেকেন্ডে তাত্ক্ষণিক সময়ে একজন ব্যবধান প্রতিনিধিত্ব করে। উভয় তাত্ক্ষণিক সময় অঞ্চলটির সাথে সম্পূর্ণ, ডেটটাইম ধারাবাহিকতায় সম্পূর্ণ তাত্ক্ষণিকভাবে নির্দিষ্ট করা হয়। নির্দিষ্ট সময়গুলি সংজ্ঞায়িত করা হয় যেমন এটি গতকাল 20: 00: 00GMT এবং আজ সকালে 09: 00: 00GMT এর মধ্যে অন্তর হতে পারে।

একটি সময়কাল Joda টাইমে মিলিসেকেন্ডে মাপা সময় একটি সময়কাল প্রতিনিধিত্ব করে। সময়কাল প্রায়শই একটি বিরতি থেকে প্রাপ্ত হয়। অর্থাত্ আমরা একটি সময়কাল অর্জনের জন্য একটি বিরতিতে শুরু থেকে বিয়োগ করতে পারি

একটি নির্দিষ্ট সময়ের Joda টাইমে ক্ষেত্র শর্তাবলী সংজ্ঞায়িত সময় একটি নির্দিষ্ট সময়ের, উদাহরণস্বরূপ, 3 বছর 5 মাস 2 দিন ও 7 ঘন্টা প্রতিনিধিত্ব করে। এটি একটি সময়কালের চেয়ে পৃথক যে এটি মিলি সেকেন্ডের ক্ষেত্রে নিখুঁত। একটি পিরিয়ড কেবলমাত্র তাত্ক্ষণিক (কালানুক্রম এবং সময় অঞ্চল সহ) উল্লেখ করে নির্দিষ্ট সংখ্যক মিলিসেকেন্ডে সমাধান করা যায় it উদাহরণস্বরূপ 1 বছরের সময়কালের কথা বিবেচনা করুন, যদি আমরা এটি 1 লা জানুয়ারীতে যুক্ত করি আমরা সর্বদা আগাম জানুয়ারিতে পৌঁছে যাব তবে সময়কালটি মধ্যবর্তী বছরটি একটি লিপ বছর কিনা তার উপর নির্ভর করবে। একইভাবে যদি আমরা এক মাসের প্রথম মাসে 1 মাস যোগ করি তবে আমরা পরের মাসের প্রথম দিকে পৌঁছে যাব তবে সময়কাল (মিলি সেকেন্ডে) প্রশ্নযুক্ত মাসের ভিত্তিতে পরিবর্তিত হবে


প্রশ্ন 3 এর জন্য, একটি সময়কালকে বিভক্ত করার জন্য একটি নির্দিষ্ট পদ্ধতির সত্যই প্রয়োজন হয় না কারণ আমরা সর্বদা একটি long(ব্যবহার করে getMillis()) হিসাবে সময়কাল থেকে মিলিসেকেন্ডের সংখ্যা পেতে পারি , এটি বিভক্ত করতে পারি এবং একটি নতুন সময়কাল (ব্যবহার করে new Duration(long duration)) তৈরি করতে পারি।

একটি পিরিয়ড বিভক্ত করার উপরোক্ত সময়ের সংজ্ঞা উপর ভিত্তি করে সত্যিকারের সত্যিকার অর্থ নেই। যেমন অর্ধ মাস কি? (এর দৈর্ঘ্যটি কোন মাসের উপর নির্ভর করবে)।


1
আমি মনে করি একটি পিরিয়ড ভাগ করার একটি অর্থ রয়েছে - অর্ধ মাস এখনও সময়ের একটি বৈধ ইউনিট, তবে ঠিক কত দিন (মাসের ঠিক একই পদ্ধতিতে একটি বৈধ সময়সীমা) এটি জানতে একটি শুরুর তারিখ প্রয়োজন।
হ্যাডলি

11
জোডাটাইম একটি পিরিয়ডকে INTEGER মূল্যবান ক্ষেত্রগুলির একটি দ্বিগুণ হিসাবে বিবেচনা করে, এটি ভগ্নাংশের মানকে দেয় না। এটি সাধারণ (নাগরিক) ব্যবহারের সাথে সামঞ্জস্যপূর্ণ। কার্যত সাধারণ জীবনে কেউ বিবেচনা করে না যে '1 মাস 10 দিন' দুটি দ্বারা ভাগ করে 'অর্ধ মাস এবং 5 দিন'। আপনার যদি সেই বিভাগটি করার প্রয়োজন হয় তবে আপনি সম্ভবত কোনও সময়কাল (শারীরিক সময়) এ যেতে চান।
লিওনব্লায়

90

মাইকেজের উত্তর যুক্ত করতে :

একজন Joda-টাইম সময়কাল একটি "প্রকৃত" সময় ব্যবধান হয়; উদাহরণ:

12000 milliseconds <- এটি একটি সময়কাল

একজন Joda-টাইম ব্যবধান আসলে একজোড়া হয় instants (- শেষ তাত্ক্ষণিক তাত্ক্ষণিক শুরু)। একটি তাত্ক্ষণিক , আবার, একটি "প্রকৃত" ধারণা টাইমলাইনে একটি বিন্দু। উদাহরণস্বরূপ (কেবলমাত্র একটি সম্ভাব্য স্বরলিপি):

(2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC) <- এটি একটি বিরতি

একটি বিরতি , তারপরে, একটি সময়কালে রূপান্তর করা যেতে পারে , তবে বিপরীতে নয়।

এই দুটি অন্তর বিবেচনা করুন:

I1=(2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC)

I2=(2010/3/3 21:00:00.000 UTC ; 2010/3/3 22:00:00.000 UTC)

অন্তর হিসাবে, I1এবং I2পৃথক, কারণ শেষ পয়েন্ট পৃথক; কিন্তু যদি আমি তাদের মেয়াদের রূপান্তর, আমি একই জিনিস পাবেন: 3600000 milliseconds

(গণিত সাদৃশ্য: অন্তরগুলি [10,12]এবং [95,97]বিভিন্ন অন্তর অন্তর , তবে তাদের সমান দৈর্ঘ্য : "অন্তর দৈর্ঘ্য" সময়কালের মানচিত্র )।

শেষ অবধি , একটি সময়কাল "সিভিল টাইম" এর একটি বিভ্রান্তি, এটি বিভিন্ন মাস, দিন, ঘন্টা ইত্যাদি হিসাবে প্রকাশিত হয় - এটি নিজেই-কোনও "শারীরিক" অন্তরকে উপস্থাপন করে না, সুতরাং এটি সরাসরি রূপান্তরিত হতে পারে না সময়কাল (মাসের পরিবর্তনশীল দৈর্ঘ্য থাকে ...)।

এই প্রশ্নের উত্তর 3: আপনি কেবল দুটি দৈহিক সময় (একটি সময়কাল) দ্বারা ভাগ করতে পারেন।


দুই দ্বারা বিভক্ত চার মাস হবে দুই মাস। কেন এটি বৈধ নয়?
হ্যাডলি

1
আপনি কিভাবে 2 মাস গণনা করবেন; 18 দিন '3 দিয়ে ভাগ? আপনি এই ধরণের অপারেশনের একটি সামঞ্জস্যপূর্ণ সংজ্ঞা পেতে পারেন না।
লিওনব্লায়

3
আমি মনে করি আপনি একটি সামঞ্জস্যপূর্ণ সংজ্ঞা পেতে পারেন, তবে আপনাকে "2 মাস 18 দিন" সময়ের 1/3 হিসাবে এটি সম্পর্কে ভাবতে হবে। আপনি একে অন্তর রূপান্তর না করা পর্যন্ত আপনি এটি ঠিক কী কাজ করতে পারবেন না। জোডা সমর্থন না করার কারণে এটির অর্থ এটি অবৈধ।
হ্যাডলি

@ হাদলি "দিনের এক তৃতীয়াংশ" এর কোনও নাগরিক সংজ্ঞা নেই। যেমন কোনও চুক্তি দিনের এক তৃতীয়াংশের জন্য বৈধ নয়।
ipavlic

4
@ রিচার্ড ওয়াটসন দিনগুলি ডিএসটির কারণে 23, 24 বা 25 ঘন্টা দীর্ঘ হতে পারে। সুতরাং "থেকে শুরু করে দিনের এক তৃতীয়াংশ ..." বৈধ, তবে কেবল "এক তৃতীয়াংশ" নয়।
ipavlic
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.