日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java可视化日历_Java简单可视化日历程序

發布時間:2024/9/19 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java可视化日历_Java简单可视化日历程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

涉及知識:

一、Date類

在JDK1.0中,Date類是唯一的一個代表時間的類,但是由于Date類不便于實現國際化,所以從JDK1.1版本開始,推薦使用Calendar類進行時間和日期處理。這里簡單介紹一下Date類的使用。

1、使用Date類代表當前系統時間

Date d = new Date();

System.out.println(d);

使用Date類的默認構造方法創建出的對象就代表當前時間,由于Date類覆蓋了toString方法,所以可以直接輸出Date類型的對象,顯示的結果如下:

Tue Aug 08 16:20:20 CST 2017

2、使用Date類代表指定的時間(過期)

Date d1 = new Date(2017-1900,8-1,8);

System.out.println(d1);

使用帶參數的構造方法,可以構造指定日期的Date類對象,Date類中年份的參數應該是實際需要代表的年份減去1900,實際需要代表的月份減去1以后的值,顯示的結果如下:

Tue Aug 08 00:00:00 CST 2017

3、獲得Date對象中的信息(過期)

Date d2 = new Date();

int year = d2.getYear() +

1900;?//年份

int month = d2.getMonth() +1;//月份

int day = d2.getDay();//星期幾

System.out.println("年份:" + year);

System.out.println("月份:" + month);

System.out.println("星期:" + day);

二、Calendar類

從JDK1.1版本開始,在處理日期和時間時,系統推薦使用Calendar類進行實現。在設計上,Calendar類的功能要比Date類強大很多,而且在實現方式上也比Date類要復雜一些,下面就介紹一下Calendar類的使用。

1、使用Calendar類代表當前時間

Calendar c = Calendar.getInstance();

由于Calendar類是抽象類,且Calendar類的構造方法是protected的,所以無法使用Calendar類的構造方法來創建對象,API中提供了getInstance方法用來創建對象。

2、使用Calendar類代表指定的時間

Calendar c1 = Calendar.getInstance();

c1.set(2017, 8 - 1, 8);

使用Calendar類代表特定的時間,需要首先創建一個Calendar的對象,然后再設定該對象中的年月日參數來完成。

set方法的聲明為:

public final void set(int year,int month,int

date)

在該方法中,參數field代表要設置的字段的類型,常見類型如下:

Calendar.YEAR——年份

Calendar.MONTH——月份

Calendar.DATE——日期

Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同

Calendar.HOUR——12小時制的小時數

Calendar.HOUR_OF_DAY——24小時制的小時數

Calendar.MINUTE——分鐘

Calendar.SECOND——秒

Calendar.DAY_OF_WEEK——星期幾

后續的參數value代表,設置成的值。例如:

c1.set(Calendar.DATE,8);

該代碼的作用是將c1對象代表的時間中日期設置為8號,其它所有的數值會被重新計算,例如星期幾以及對應的相對時間數值等。

3、獲得Calendar類中的信息

Calendar c2 = Calendar.getInstance(); //年份

int year = c2.get(Calendar.YEAR); //月份

int month = c2.get(Calendar.MONTH) + 1; //星期幾

int day = c2.get(Calendar.DAY_OF_WEEK);

System.out.println("年份:" + year);

System.out.println("月份:" + month);

System.out.println("星期:" + day);

使用Calendar類中的get方法可以獲得Calendar對象中對應的信息,get方法的聲明如下:

public int get(int field)

其中參數field代表需要獲得的字段的值,字段說明和上面的set方法保持一致。需要說明的是,獲得的月份為實際的月份值減1,獲得的星期的值和Date類不一樣。在Calendar類中,周日是1,周一是2,周二是3,依次類推。

代碼演示(可視化日歷程序):

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Scanner;

public class TestDemo{

public static void main(String[] args) {

System.out.println("請按格式輸入日期(如2017-8-8):");

Scanner input = new Scanner(System.in);//輸入

String str = input.nextLine();

DateFormat df = new

SimpleDateFormat("yyyy-MM-dd");//字符串格式化

try {

Date date = df.parse(str);//嘗試把字符串

str解釋為日期和時間的表示形式

Calendar calendar = new

GregorianCalendar();//使用當前時間構造一個默認的 GregorianCalendar

calendar.setTime(date);//使用給定的 Date 設置此 Calendar

的時間。

calendar.set(Calendar.DATE, 1);//將日期設為1號

int maxDate =

calendar.getActualMaximum(calendar.DATE);//返回指定日歷字段可能擁有的最大值

System.out.print("日\t一\t二\t三\t四\t五\t六");

System.out.println();

for(int i = 1 ; i <

calendar.get(Calendar.DAY_OF_WEEK); i++){//循環,次數少于當前星期中的某天

System.out.print("\t");

}

for(int i = 1; i <= maxDate; i++){

//循環,次數少于日歷字段可能擁有的最大值

System.out.print(i+"\t");

int week =

calendar.get(Calendar.DAY_OF_WEEK);//指示一個星期中的某天

if(week == 7){//如果當前星期等于周六

System.out.println();

}

calendar.add(Calendar.DATE, 1);//當前日期追加1

}

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

總結

以上是生活随笔為你收集整理的java可视化日历_Java简单可视化日历程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。