时间、日期和数字
Date類
/** 時間,日期和數字* Date類* Date類存在于java.util包中,Date類的無參構造方法創建的對象可以獲取本地當前的時間。* Date對象表示時間的一般順序為:星期、月、日、小時、分、秒、年* 計算機時間的公元設置在1970年1月1日0時(格林威治時間)* 格式化時間必須用到java.text.SimpleDateFormat包* 格式化格式:年份yyyy或者yy 月份M或MM如果想用漢語輸出月份,則至少要三個MMM d或者dd輸出日 H或HH輸出小時 m或mm輸出分 s或ss輸出秒* E表示用字符串輸出星期*/import java.util.*; import java.text.SimpleDateFormat;//如果要格式化日期,則必須調用public class DateClass_Date {public static void main(String[] args){Date nowTime=new Date();//無參構造函數獲取當前時間,輸出格式為Sat Jun 09 15:22:13 CST 2012System.out.println(nowTime);SimpleDateFormat matter1=new SimpleDateFormat("'當前時間為':yyyy年MM月dd日HH時mm分ss秒");System.out.println(matter1.format(nowTime));//time:2012年06月09日15時24分32秒SimpleDateFormat matter2=new SimpleDateFormat("北京時間:yyyy年MM月dd日HH時mm分ss秒");System.out.println(matter2.format(nowTime));Date date1=new Date(1000);Date date2=new Date(-1000);System.out.println(matter1.format(date1));System.out.println(matter1.format(date2));//如果時間早于1970年1月1日0時,則可以通過這種方法獲取以前的時間} }Calendar類 /** new和getInstance()的區別,new一定要生成一個新對象,分配內存。getInstance則不一定需要再次創建,他可以吧一個已經存在引用* 讓你使用,性能上由于new* new創建后只能當次使用,而getinstance則可以跨棧區使用,或者遠程跨區域使用,getInstance通常是創建static靜態實例的方法* Calendar在java.util包中* */ import java.util.*;public class DateClass_Calendar {public static void main(String[] args){Calendar calendar=Calendar.getInstance();//用getInstance()來初始化對象,一般為靜態對象calendar.setTime(new Date());//獲取當前時間的日歷String year=String.valueOf(calendar.get(Calendar.YEAR));String month=String.valueOf(calendar.get(Calendar.MONTH)+1);//月份需加1String day=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));String week=String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)-1);//星期需減1int hour=calendar.get(Calendar.HOUR_OF_DAY);int minute=calendar.get(Calendar.MINUTE);int second=calendar.get(Calendar.SECOND);System.out.println("現在的時間是:");System.out.println(""+year+"年"+month+"月"+day+"日"+"星期"+week);System.out.println(""+hour+"時"+minute+"分"+second+"秒");calendar.set(2012,9,0);//將日歷翻到2006年9月11long time20060911=calendar.getTimeInMillis();//將20060911表示為毫秒calendar.set(2012,6,8);//將日歷翻到19625月29long time19620529=calendar.getTimeInMillis();long days=(time20060911-time19620529)/(1000*60*60*24);System.out.println("相隔多少天:"+days);} }
根據Calendar類和date類做的一個計算你從出生到現在的天數的小程序 /** @version 出生天數查看器 v1.0* @author sevend* 利用Calendar類做的一個計算從出生到現在多少天的小工具*/import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*;public class DateClass_CalendarGame extends JFrame implements ActionListener{JLabel lblNote;JLabel lblYear;JLabel lblMonth;JLabel lblDay;JLabel lblResult;JLabel lblNowTime;JTextField txtYear;JTextField txtMonth;JTextField txtDay;JButton jbtnSubmit;Calendar calendar=Calendar.getInstance();int nowYear;int nowMonth;int nowDay;int birthYear;int birthMonth;int birthDay;long nowTime=0;long birthTime=0;long result;DateClass_CalendarGame(){this.setTitle("出生天數查看器");lblNote=new JLabel("請輸入您的出生日期:");lblYear=new JLabel("年份(xxxx):");lblMonth=new JLabel("月份(xx):");lblDay=new JLabel("天(xx):");lblResult=new JLabel();lblNowTime=new JLabel();txtYear=new JTextField(10);txtMonth=new JTextField(10);txtDay=new JTextField(10);jbtnSubmit=new JButton("查看");jbtnSubmit.addActionListener(this);Container c=getContentPane();c.setLayout(null);c.add(lblDay);c.add(lblMonth);c.add(lblYear);c.add(lblNote);c.add(lblResult);c.add(lblNowTime);c.add(txtDay);c.add(txtMonth);c.add(txtYear);c.add(jbtnSubmit);lblNote.setBounds(40,20,200,40);lblYear.setBounds(40,70,200,40);txtYear.setBounds(250,70,60,40);lblMonth.setBounds(40,110,200,40);txtMonth.setBounds(250,110,60,40);lblDay.setBounds(40,150,200,40);txtDay.setBounds(250,150,60,40);lblResult.setBounds(40,200,200,40);jbtnSubmit.setBounds(40,250,100,40);lblNowTime.setBounds(40,300,250,40);this.setBounds(200,60,500,400);this.setVisible(true);this.setResizable(false);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent ew){dispose();}});this.calendar.setTime(new Date());this.nowYear=calendar.get(Calendar.YEAR);this.nowMonth=calendar.get(Calendar.MONTH)+1;this.nowDay=calendar.get(Calendar.DAY_OF_MONTH);calendar.set(nowYear,nowMonth,nowDay);nowTime=calendar.getTimeInMillis();}public void actionPerformed(ActionEvent e){if(e.getSource()==jbtnSubmit){if(txtYear.getText().trim().length()!=0&&txtMonth.getText().trim().length()!=0&&txtDay.getText().trim().length()!=0){this.calendar.set(Integer.parseInt(txtYear.getText()), Integer.parseInt(txtMonth.getText()),Integer.parseInt(txtDay.getText()));this.birthTime=calendar.getTimeInMillis();this.result=(nowTime-birthTime)/(1000*60*60*24);lblNowTime.setText("當前:"+this.nowYear+this.nowMonth+this.nowDay);lblResult.setText("您從出生到現在已經有"+this.result+"天了");}else{lblNowTime.setText("請輸入完整信息!");}}}public static void main(String[] args){new DateClass_CalendarGame();} }
仿作的一個在網頁上經常看到的月歷和當前時間的小功能 /** 當前時間和本月月歷*/import java.util.*; import java.text.SimpleDateFormat;public class DateClass_CalendarNowTime {public static void main(String[] args){System.out.println("當前時間為:");Date date=new Date();SimpleDateFormat patter=new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");System.out.println(patter.format(date));Calendar calendar=Calendar.getInstance();int nowMonth=calendar.get(Calendar.MONTH);int nowYear=calendar.get(Calendar.YEAR);calendar.set(nowYear, nowMonth,1);System.out.println("本月月歷");System.out.println(" 日 一 二 三 四 五 六");int week=calendar.get(Calendar.DAY_OF_WEEK)-1;String[] a=new String[week+31];for(int i=0;i<week;i++){a[i]="**";}for(int i=week,n=1;i<week+31;i++){if(n<=9)a[i]=String.valueOf(n)+" ";elsea[i]=String.valueOf(n);n++;}for(int i=0;i<a.length;i++){if(i%7==0){System.out.println("");}System.out.print(" "+a[i]);}} }
總結
- 上一篇: supersqli 攻防世界
- 下一篇: ChatGPT版Bing被调戏到生气发飙