ثانیه

دقیقه

ساعت

روز

معرفی کامل کلاس‌های Date و Calendar در جاوا


معرفی کامل کلاس‌های Date و Calendar در جاوا
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.

معرفی کامل کلاس‌های Date و Calendar در جاوا

در این جلسه می‌خواهیم کلاس Date که برای کار با زمان و تاریخ استفاده می‌شود و درون پکیچ Java.util قرار دارد.

تاریخ و زمان در پروژه ها کاربرد زیادی دارند به عنوان مثال برای دریافت داده در تاریخ خاص، چک کردن فاصله زمانی و...

یکی از مشکلاتی که ایرانیان با تاریخ دارند این است که تاریخ کشور ما بر اساس هجری شمسی است و تاریخ بین المللی بر اساس تاریخ میلادی است. ما در محیط‌های ذخیره سازی مانند: فایل ها، دیتابیس و... تاریخ را بر اساس تاریخ میلادی ذخیره می‌کنیم و برای تبدیل تاریخ میلادی به تاریخ شمسی باید کتابخانه یا کلاس هایی را به برنامه اضافه کنیم تا این تبدیل را برای ما انجام دهند.

Date date1=new Date();

System.out.println(date1);

خروجی

Thu Aug 19 12:51:58 IRDT 2021

تابع سازنده Date می‌تواند یک عدد بر حسب میلی ثانیه دریافت کند و از تاریخ 1970/01/01 تاریخ را محاسبه می‌کند.

Date date2=new Date(1435678934);

System.out.println(date2);

خروجی

Tue Jan 06 04:31:18 IRST 1970

متد های مهم کلاس Date

متد after

این متد یک شی از Date دریافت می‌کند و بررسی می‌کند مقدار فعلی بعد تاریخ وارد شده است یا خیر، خروجی این تابع boolean است.

Date date1=new Date();

Date date2=new Date(1435678934);

System.out.println(date1.after(date2));

خروجی

true

متد before

این متد یک شی از Date دریافت می‌کند و بررسی می‌کند مقدار فعلی قبل از تاریخ وارد شده است یا خیر، خروجی این تابع boolean است.

Date date1=new Date();

Date date2=new Date(1435678934);

System.out.println(date1.before(date2));

خروجی

false

متد equlas

این متد یک شی از Date دریافت می‌کند و بررسی می‌کند با مقدار فعلی برابر است یا خیر. خروجی این تابع boolean است.

Date date1=new Date();

Date date2=new Date(1435678934);

System.out.println(date1.equals(date2));

خروجی

false

متد compareTo

این متد یک شی از Date دریافت می‌کند و اگر با مقدار فعلی برابر باشد عدد 0 برمی‌گرداند، اگر از مقدار فعلی بزرگتر باشد عدد -1 برمی‌گرداند و اگر کوچکتر از مقدار فعلی باشد عدد 1 برمی گرداند.

Date date1=new Date();

Date date2=new Date(1435678934);

System.out.println(date1.compareTo(date2));

خروجی

1

متد getTime

این متد تاریخ و زمان فعلی را به میلی ثانیه تبدیل می‌کند، خروجی این تابع lang است.

Date date1=new Date();

System.out.println(date1.getTime());

خروجی

1629361623271

متد setTime

این متد برای ست کردن تاریخ استفاده می‌شود و از تاریخ 1970/01/01 این تاریخ را محاسبه می‌کند.

Date date1=new Date();

date1.setTime(0);

System.out.println(date1);

خروجی

Tue Jan 01 03:30:00 IRST 1970

برای چاپ تاریخ با فرمت دلخواه می توان از کلاس SimpleDateFormat استفاده کرد.

Date date1=new Date();

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd");

System.out.println(simpleDateFormat.format(date1));

خروجی

2021/08/19

قالب‌های نمایش تاریخ و زمان:

Pattern

Example

dd-MM-yy

31-01-12

dd-MM-yyyy

31-01-2012

MM-dd-yyyy

01-31-2012

yyyy-MM-dd

2012-01-31

yyyy-MM-dd HH:mm:ss

2012-01-31 23:59:59

yyyy-MM-dd HH:mm:ss.SSS

2012-01-31 23:59:59.999

yyyy-MM-dd HH:mm:ss.SSSZ

2012-01-31 23:59:59.999+0100

EEEEE MMMMM yyyy HH:mm:ss.SSSZ

Saturday November 2012 10:45:42.720+0100

 

تا اینجا با استفاده از کلاس Date توانستیم با تاریخ و زمان کار کنیم، اما کلاس Date به دلیل اینکه با عدد میلی ثانیه کار می‌کند برای ما خیلی کاربردی نیست. برای استفاده از ابزارهای بیشتر از تاریخ و زمان از کلاس Calender استفاده می‌کنیم.

کلاس Calender درون پکیج java.util قرار دارد و با استفاده از این کلاس بهتر می‌توان از تاریخ و زمان استفاده کرد به عنوان مثال می‌توان استاندارد تاریخ و زمان را تغییر داد و یا منطقه جغرافیایی اضافه کرد و...

برای ساخت شی از کلاس Calender نمی‌توان آن را با استفاده از new مقدار دهی کرد و باید با استفاده از متد استاتیک getInstance آن را مقدار دهی کرد مشابه زیر:

Calendar calendar1=Calendar.getInstance();

متدهای کلاس Calender

متد getTime

این متد تاریخ فعلی را برمی‌گرداند.

Calendar calendar1=Calendar.getInstance();

System.out.println(calendar1.getTime());

خروجی

Thu Aug 19 13:06:59 IRDT 2021

متد get

این متد یک عدد دریافت می‌کند و بخشی از تاریخ و زمان را برمی‌گرداند. درون کلاس Calender فیلدهای استاتیک وجود دارد که نماد روز، ماه، سال، ساعت، دقیقه، ثانیه، میلی ثانیه و.. است و می‌توان به عنوان ورودی این متد استفاده کرد.

Calendar calendar1=Calendar.getInstance();

System.out.println(calendar1.get(Calendar.YEAR));

System.out.println(calendar1.get(Calendar.MONTH));

System.out.println(calendar1.get(Calendar.DAY_OF_MONTH));

System.out.println(calendar1.get(Calendar.DAY_OF_WEEK));

System.out.println(calendar1.get(Calendar.HOUR));

System.out.println(calendar1.get(Calendar.MINUTE));

System.out.println(calendar1.get(Calendar.SECOND));

System.out.println(calendar1.get(Calendar.MILLISECOND));

خروجی

2021

7

19

5

1

10

25

95

متد getMinimum

این متد یک عدد دریافت می‌کند و کمترین مقداری که آن تاریخ و زمان می‌تواند داشته باشد را برمی‌گرداند.

Calendar calendar1=Calendar.getInstance();

System.out.println(calendar1.getMinimum(Calendar.YEAR));

System.out.println(calendar1.getMinimum(Calendar.MONTH));

System.out.println(calendar1.getMinimum(Calendar.DAY_OF_WEEK));

System.out.println(calendar1.getMinimum(Calendar.DAY_OF_MONTH));

خروجی

1

0

1

1

همانطور که مشاهده می‌کنید کمترین مقدار سال برابر 1 است و کمترین مقدار ماه برابر 0، می‌توانید برای بقیه حالت‌ها نیز از این متد استفاده کنید و کمترین مقداری که می‌تواند داشته باشد را مشاهده کنید.

متد set

این متد دو پارامتر دریافت می‌کند و پارامتر اول یک عدد که نشانگر روز، ماه، سال و.. دریافت می‌کند و پارامتر دوم مقداری است که می‌خواهید جایگزین شود.

Calendar calendar1=Calendar.getInstance();

calendar1.set(Calendar.YEAR,1);

System.out.println(calendar1.getTime());

خروجی

Fri Aug 19 13:20:35 IRST 1

متد add

این متد برای اضافه کردن به واحدهای زمانی استفاده می‌شود این متد دو پارامتر دریافت می‌کند پارامتر اول نشانگر روز، ماه، سال و.. و پارامتر دوم تعداد واحدی که می‌خواهید اضافه شود.

Calendar calendar1=Calendar.getInstance();

System.out.println(calendar1.getTime());


calendar1.add(Calendar.YEAR,1);

calendar1.add(Calendar.DAY_OF_MONTH,20);

خروجی

Thu Aug 19 13:06:59 IRDT 2021     //تاریخ فعلی

Thu Sep 08 13:22:23 IRDT 2022

متد equals

این متد برای مقایسه برابری دو تاریخ استفاده می‌شود و خروجی boolean برمی‌گرداند.

Calendar calendar1=Calendar.getInstance();

calendar1.set(Calendar.YEAR,1);

Calendar calendar2=Calendar.getInstance();

System.out.println(calendar1.equals(calendar2));

خروجی

false

متد compareTo

این متد یک پارامتر از نوع calender دریافت می‌کند و با calender فعلی بررسی می‌کند اگر برابر باشد مقدار 0 برمی‌گرداند، اگر مقدار فعلی بزرگ تر باشد عدد 1 برمی‌گرداند و اگر مقدار فعلی کوچکتر باشد عدد -1 برمی‌گرداند.

Calendar calendar1=Calendar.getInstance();

calendar1.set(Calendar.YEAR,1);

Calendar calendar2=Calendar.getInstance();

System.out.println(calendar1.compareTo(calendar2));

خروجی

1

در ادامه یک روش کوتاه و کاربردی برای بدست آوردن اختلاف تاریخ را بررسی می‌کنیم.

در این جلسه با کلاس Date و کلاس Calender آشنا شدیم و با توابع مهم و کاربردی این کلاس ها کار کردیم.

 

باعث افتخار هست که توانستیم با یک دوره جامع و کامل دیگر در خدمت شما عزیزان باشیم. این دوره فعلا شامل 56 جلسه آموزش با 1627 دقیقه است و در حال برگزاری و اضافه شدن مطالب می باشد، حتی ممکن است زمانی که این متن را می خوانید تعداد جلسات و تایم آن بیشتر نیز شده باشد، شما می‌توانید با تهیه این دوره به همه جلسات و بخش های آن دسترسی داشته باشید.

شما درسمنی های عزیز هر گونه سوال یا ابهامی از این جلسه داشتید می‌توانید به انجمن برنامه نویسان جاوا مراجعه کنید و سوالات خود را بپرسید.

ممنون از همراهی شما

 

نظرات
کاربر درسمن
adel gholami

شیوه ی تدریس استاد واقعا خیلی خوبه قیمتش هم واقعا مناسبه .خیلی ممنون از زحماتتون

پشتیبانی 1
پشتیبانی 1

سلام عادل جان، خیلی از شما ممنون هستیم، بله ما نیز مثل شما از تدریس مهندس عباسی لذت می بریم و این حس خیلی خوبی است که شما نیز همواره رضایت کافی را از نوع تدریس و قیمت آن دارید.

کاربر درسمن
adel gholami

سلام خسته نباشید. شما می خواستید اختلاف دو تاریخ را بدست آورید. با روش شما اختلاف بر اساس سال و ماه و روز بدست می آید ولی بر اساس ساعت بدست می آید در مسئله ی پارکینگ این موضوع خیلی مهم است لطفا آموزش دهید اختلاف دو تاریخ را بر اساس ساعت بدست آوریم.

پشتیبانی 1
پشتیبانی 1

سلام دوست عزیز حتما بررسی می شود.


نظر بدهید نظر شما در تصمیم دیگران اثرگذار است. لطفا برای ما و همراهان درسمن نظر خود را بنویسید.
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات : جلسه
مدت زمان : 2057 دقیقه
حجم دوره : 6/35 گیگابایت
سطح مهارت : پیشرفته
وضعیت دوره : پایان یافته
تعداد دانشجویان : 1390
: میانگین امتیاز
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و ....