در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ

با سلام به همه دوستان وهمراهان Itpro. به طور معمول در کار با همه برنامه های تجاری به نوعی با تاریخ و ساعت و زمان سرو کار خواهیم داشت. بنابراین اگر زبان برنامه نویسی پشتیبانی مناسبی از تاریخ و زمان داشته باشد می تواند برای برنامه نویسی و تولید نرم افزار بسیار مفید باشد. زبان جاوا کلاس Date را برای کار با تاریخ و زمان فراهم کرده است. این کلاس در پکیج java.util می باشد. کلاس Date دارای دو constructor می باشد که در یکی آرگومان ورودی وجود ندارد و در دیگری یک آرگومان ورودی وجود دارد. اگر از constructor ی استفاده شود که آرگومان ورودی ندارد، در شئی که ساخته می شود تاریخ کنونی سیستم قرار داده می شود. در شکل دوم constructor کلاس Date یک مقدار long دریافت می کند که این عدد تعداد میلی ثانیه هایی است که از روز 1 ژانويه سال 1970 می گذرد. اگر از این constructor استفاده کنیم زمانی که میلی ثانیه های مشخص شده گفته اند در داخل شئ مورد نظر ریخته می شود.

متدهای موجود در کلاس Date

متد after این متد یک ورودی از کلاس Date میگیرد. وظیفه این متد این است که مشخص می کند که تاریخ شئ صدا زننده بعد از تاریخ ورودی است یا خیر. اگر تاریخ شئ صدا زننده بعد از تاریخ ورودی باشد مقدار true برمی گرداند و در غیر این صورت مقدار false برمی گرداند. شکل نوشتاری این متد به شکل زیر است

boolean after(Date date)

متد before این متد برعکس متن قبلی است و اگر تاریخ شئ صدا زننده قبل از تاریخ ورودی باشد مقدار true برمی گرداند. شکل نوشتاری این متد دقیقا شبیه به متد بالا است.

متد clone شئ تاریخ مورد نظر را به همراه داده های درونی اش کپی می کند و شکل نوشتاری آن مانند کد زیر است:

Object clone( )

متد compareTo این متد یک شئ تاریخ به عنوان ورودی می گیرد و با تاریخ شئ صدا زننده متد مقایسه می کند. اگر دو تاریخ با هم برابر بودند مقدار 0 را برمی گرداند و اگر تاریخ شئ صدا زننده قبل از تاریخ ورودی باشد یک مقدار منفی و اگر تاریخ شئ صدا زننده متد بعد از تاریخ ورودی باشد یک مقدار مثبت برمی گرداند. شکل نوشتاری این متد به شکل زیر است:

int compareTo(Date date)

به متد compareTo می توان یک شئ دیگر به عنوان ورودی داد که کامپایلر سعی می کند آن را به کلاس Date تبدیل کند که اگر تبدیل شد تاریخ ها را با هم مقایسه می کند و اگر عمل تبدیل موفقیت آمیز نباشد یک exception از نوع ClassCastException رخ می دهد.

متد equals این متد یک شئ به عنوان ورودی دریافت کرده و اگر دو مقدار از نظر تاریخ و زمان باهم مساوی بودند مقدار true برمی گرداند.

متد getTime این متد اختلاف زمانی تاریخ شئ داده شده را نسبت به 1 ژانویه 1970 محاسبه کرده و به تعداد میلی ثانیه برمی گرداند. شکل نوشتاری این متد در ادامه آورده شده است:

long getTime( )

متد setTime این متد یک آرگومان ورودی می گیرد که یک عدد است که تعداد میلی ثانیه هایی را که از زمان اول ژانویه 1970 می گذرد است و تاریخ مطابق آن را در شئ ذخیره می کند. فرم این متد به شکل زیر است:

void setTime(long time)

برای این که تاریخ یک شئ را به صورت متن دربیاوریم از متد toString استفاده می کنیم که این متد در مطالب قبلی توضیح داده شده است.

پیدا کردن و نمایش تاریخ کنونی

یک راه آسان برای پیدا کردن تاریخ و زمان جاری در جاوا وجود دارد و آن استفاده از یک شئ Date و استفاده از متد toString می باشد که شکل آن در کد زیر آورده شده است:

import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // ساخت شئ
       Date date = new Date();
        
       //نمایش تاریخ
       System.out.println(date.toString());
   }
}

خروجی کد بالا به شکل زیر خواهد بود

Tue Feb 23 16:51:10 IRST 2016

مقایسه دو تاریخ با هم

سه راه برای مقایسه دو مقدار تاریخ در جاوا وجود دارد که آن ها را شرح می دهیم.

  1. شما می توانید تعداد میلی ثانیه های هرکدام از تاریخ ها را با استفاده از متد getTime به دست آورید و سپس دو مقدار عدد را با هم مقایسه کنید و هرکدام که بیشتر بودند به این معنی است که تاریخ آن بعد تر است.
  2. شما می توانید از متد های before و after و equals برای مقایسه استفاده کنید. برای مثال روز سوم قبل از روز نهم می آید پس اگر در این مثال از متد before استفاده کنیم مقدار true برمی گرداند. برای مثال نتیجه کد زیر مقدار true خواهد بود
  3. System.out.println(new Date(2016,2,23).before(new Date(2016,2,29)));
    
  4. می توانید از متد compareTo استفاد کنید.

قالب بندی تاریخ

هنگامی که می خواهیم تاریخ را در خروجی نمایش دهیم می توانیم آن را به شکل های گوناگون نمایش دهیم. برای نمایش تاریخ فرمت ها و قالب بندی های گوناگونی در جاوا وجود دارد که با استفاده از کلاس SimpleDateFormat می توان این قالب ها را اعمال کرد. با استفاده از این کلاس می توان قالب های مختلفی برای نمایش تاریخ داشت. برای مثال و درک بهتر به کد زیر دقت کنید:

import java.util.*;
import java.text.*;

public class DateDemo {
   public static void main(String args[]) {

      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

خروجی این کد به شکل زیر خواهد بود

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

همانطور که در کد بالا دیده می شود در متغیر ft یک فرمت تعریف شده است که این فرمت بر روی تاریخ اعمال شده است. همانطور که در کد دیده می شود از علائم و کاراکترهای متنوعی برای فرمت دهی برای تاریخ و زمان به کار رفته است. حال می خواهیم ببینیم که از چه حروفی برای قالب بندی تاریخ می توان استفاده کرد و هر کدام از این حروف چه معنی و مفهومی دارند. در جدول زیر کاراکتر ها به همراه معنی و مفهوم به همراه یک مثال برای هرکدام آورده شده است:

آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ

قالب بندی داده ها با printf

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

آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ

مثالی از قالب بندی با استفاده از printf در کد زیر آمده است.

import java.util.Date;

public class DateDemo {

  public static void main(String args[]) {
     // Instantiate a Date object
     Date date = new Date();

     // display time and date using toString()
     String str = String.format("Current Date/Time : %tc", date );

     System.out.printf(str);
  }
}

خروجی این کد به شکل زیر خواهد بود:

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

این قابلیت هم وجود دارد که با استفاده از متد printf تاریخ را جزء به جزء قالب بندی کنیم. برای این کار باید هر جزء با اندیس مشخص شود که قبل از اندیس علامت % و بعد از اندیس علامت $ قرار می گیرد. برای مثال به کد زیر دقت کنید

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // Instantiate a Date object
       Date date = new Date();
        
       // display time and date using toString()
       System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                         "Due date:", date);
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

Due date: February 09, 2004

کتاب خانه های دیگری هم در مورد تاریخ در جاوا وجود دارند که از آوردن آنها صرف نظر کرده ایم.

تبدیل رشته به تاریخ

کلاس SimpleDateFormat متدهایی مانند parse دارد که متن را به تاریخی با فرمت داده شده تبدیل می کند. برای مثال به کد زیر دقت کنید:

import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 

      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 

      Date t; 

      try { 
          t = ft.parse(input); 
          System.out.println(t); 
      } catch (ParseException e) { 
          System.out.println("Unparseable using " + ft); 
      }
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818

البته دقت داشته باشید که اگر به فرمت داده شده تاریخ را وارد نکنید برنامه به شما خطا خواهد داد.

متوقف کردن برنامه برای مدتی

برنامه جاوا که در حال اجرا است را می توان برای مدتی متوقف کرد. برای مثال برنامه زیر به مدت 10 ثانیه متوقف می شود.

import java.util.*;
  
public class SleepDemo {
   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(5*60*10); 
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

Sun May 03 18:04:41 GMT 2009

Sun May 03 18:04:51 GMT 2009

محاسبه زمان صرف شده

گاهی اوقات می خواهیم بدانیم که اجرای یک قسمت از کد چه مقدار زمان می برد. جاوا می تواند این زمان را در قالب میلی ثانیه برای ما مشخص کند. به این شکل که قبل از کد مورد نظر زمان را ذخیره می کنیم و پس از این که اجرای کد پایان یافت زمان را در نظر می گیریم و اختلاف بین دو زمان رامحاسبه می کنیم. برای درک بهتر به کد زیر که شکل بازنویسی شده کد بالا است توجه کنید:

import java.util.*;
  
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

Sun May 03 18:16:51 GMT 2009

Sun May 03 18:16:57 GMT 2009

Difference is : 5993

Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#قالب_بندی_نمایش_تاریخ_در_جاوا #برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #به_دست_آوردن_زمان_اجرای_برنامه_در_جاوا #مقایسه_تاریخ_در_جاوا #آموزش_جاوا #کلاس_date_در_جاوا #کار_با_تاریخ_در_جاوا #دوره_آموزشی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....