در این جلسه، تیم کدگیت را با آموزش محاسبه اختلاف دو تاریخ در جاوا همراهی کنید. پیش نیاز این جلسه شامل موارد زیر است:
- آشنایی با متد
- آشنایی با مدیریت استثناها
- آشنایی با کلاس Date
گاهشماری میلادی
گاهشماری میلادی گاهشماری با ریشهٔ مسیحی است که هماکنون در بیشتر کشورهای جهان استفاده میشود و تقویمی بینالمللی است. این گاهشماری برگرفته از گاهشماری ژولینی با مبدأ میلادی (میلاد حضرت عیسی) است و نخست از سوی آلویسیوس لیلیوس که پزشکی از اهالی ناپل بود پیشنهاد شد. تعدیل کبیسهگیری این گاهشماری در ۲۴ فوریه ۱۵۸۲ از سوی پاپ گرگوری سیزدهم پذیرفته شد و از آن پس به گاهشماری گریگوری (گرِگوری) نیز مشهور شد(ویکیپدیا).
محاسبه اختلاف دو تاریخ در جاوا
برای محاسبه اختلاف دو تاریخ در جاوا ابتدا ما تاریخ را به میلادی میگیریم و سپس اختلاف آنها را به صورت روز، ساعت و ثانیه برمیگردانیم.متد CalculateTimeDiffrence برای ما این کار را انجام میدهد. برای نمایش تاریخ از کلاس Date استفاده کردیم. کد محاسبه اختلاف دو تاریخ در جاوا به صورت زیر است:
public static void CalculateTimeDiffrence(String dateStart, String dateStop) {
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
// in milliseconds
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.print(diffDays + " days, ");
System.out.print(diffHours + " hours, ");
System.out.print(diffMinutes + " minutes, ");
System.out.print(diffSeconds + " seconds.");
} catch (Exception e) {
e.printStackTrace();
}
}
در کد بالا ما از کلاس SimpleDateFormat استفاده کردیم. این کلاس برای نمایش تاریخ با توجه به الگوی خاص است. الگو ما به صورت MM/dd/yyyy HH:mm:ss است. کلاس Date متدی به نام gettime دارد که زمان را بر اساس میلی ثانیه برمیگرداند. ما از همین متد برای بدست آوردن اختلاف استفاده کردیم.
متغییر diff تفاوت دو تاریخ را به میلی ثانیه در خود دارد و کافیست با فرمول ساده (تقسیم بر 1000) آن را به ثانیه و …. تبدیل کرد.
تست محاسبه اختلاف دو تاریخ در جاوا
برای تست کدهای بالا، کد main زیر را بزنید:
public static void main(String[] args) {
String dateStart = "01/14/2012 09:29:58";
String dateStop = "01/15/2012 10:31:48";
CalculateTimeDiffrence(dateStart, dateStop);
}
دمت گرم به کارمون امد
قربانت علی جان!