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简单可视化日历程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三栏式明细账适用于哪些科目
- 下一篇: 高五连阴是什么意思 可能会出现股价下跌