Cấp bậc tác giả:

JAVA

Xử lý Ngày tháng năm trong Java

Được viết bởi webmaster ngày 17/02/2014 lúc 10:52 PM
Khi ngôn ngữ Java còn trẻ, nó có một lớp gọi là Date khá hữu ích cho việc tạo và thao tác các ngày tháng. Thật không may, lớp đó đã không hỗ trợ đủ tốt cho yêu cầu quốc tế hóa (internationalization), do đó Sun đã thêm hai lớp để nhằm cải thiện tình hình
  • 0
  • 5156

Xử lý Ngày tháng năm trong Java


Ngôn ngữ Java sẽ mang lại cho bạn khá nhiều công cụ để xử lý các ngày tháng. Một số trong các công cụ này gây ra sự bực bội hơn là các công cụ có sẵn trong các ngôn ngữ khác. Dù sao chăng nữa, với các công cụ mà ngôn ngữ Java cung cấp, hầu như không có điều gì mà bạn không thể làm để tạo ra các ngày tháng và định dạng chúng chính xác theo cách mà bạn muốn.

Khi ngôn ngữ Java còn trẻ, nó có một lớp gọi là Date khá hữu ích cho việc tạo và thao tác các ngày tháng. Thật không may, lớp đó đã không hỗ trợ đủ tốt cho yêu cầu quốc tế hóa (internationalization), do đó Sun đã thêm hai lớp để nhằm cải thiện tình hình:

Lịch (Calendar)

Định dạng ngày tháng (Dateformat).
Đầu tiên chúng ta sẽ nói về Calendar và để DateFormat lại về sau.

Việc tạo ra một Date vẫn còn tương đối đơn giản:
Date aDate = new Date();  

Lớp Date biểu diễn 1 khoảnh khác thời gian chỉ định với độ chính xác đến milisecond.

Định dạng có tùy chỉnh 

Các khuôn dạng đã định nghĩa trước là tốt đẹp trong hầu hết các trường hợp, nhưng bạn cũng có thể sử dụng SimpleDateFormat để định nghĩa các định dạng của riêng bạn. Việc sử dụng SimpleDateFormat rất dễ hiểu:

Khởi tạo một cá thể SimpleDateFormat với một chuỗi kýtự định dạng mẫu (và một tên địa phương, nếu bạn muốn).

Gọi format() trên cá thể này với một Date cụ thể.

Kết quả là một chuỗi ngày tháng có định dạng.

Đây là bài ví dụ về Ngày sinh để đưa ra độ tuổi

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author DOTNETGROUP
 */
public class Person {

    protected String sName;
    protected Date birthdate;

   // ==============================================================
    // Set/get name of a person 
    // ==============================================================
    public void setName(String sName) {
        this.sName = sName;
    }

    public String getName() {
        return sName;
    }

   // ==============================================================
    // Compute age of a person ...
    // ==============================================================
    public int getAge() {

      // Calendar objects for "today" and "date of birth"...
        Calendar today = Calendar.getInstance();
        Calendar birthday = new GregorianCalendar();
        birthday.setTime(birthdate);

      // Compute basic difference in years ....
        int yearDiff = today.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);

      // Birthday still needs to occur this year...
        if (today.get(Calendar.MONTH) < birthday.get(Calendar.MONTH)) {
            yearDiff = yearDiff - 1;
        } else if (today.get(Calendar.MONTH) == birthday.get(Calendar.MONTH)
                && today.get(Calendar.DATE) < birthday.get(Calendar.DATE)) {
            yearDiff = yearDiff - 1;
        }

        return yearDiff;
    }

    public void setBirthDate(Date aBirthDate) {
        this.birthdate = aBirthDate;
    }

    public void setBirthDate(int iYear, int iMonth, int iDay) {
        Calendar cal = Calendar.getInstance();
        cal.set(iYear, iMonth, iDay);
        this.birthdate = cal.getTime();
    }

    public Date getBirthDate() {
        return birthdate;
    }

   // ==========================================================
    // Create a String description of a persons cridentials 
    // ==========================================================
    public String toString() {
        String s = "Name: " + getName() + "\n";
        s += " Age: " + getAge() + "\n";
        return s;
    }

   // ==========================================================
    // Exercise methods in Person class ....
    // ==========================================================
    public static void main(String[] args) {

      // Create and print a person object ...
        Person homer = new Person();
        homer.setName("DOT NET");
        homer.setBirthDate(1989, Calendar.JANUARY, 1);
        System.out.println(homer);

    }
}

Kết quả:

Name: DOT NET
 Age: 25

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML