Java日历
calendar用法java

calendar用法java在Java中,可以使用java.util.Calendar类来处理日历和日期时间相关的操作。
Calendar类是一个抽象类,提供了许多用于处理日期和时间的方法。
下面是Calendar类的一些常用方法和用法:1.获取Calendar实例:可以通过调用`Calendar.getInstance()`方法来获取一个Calendar实例,该实例会自动初始化为当前的日期和时间。
2.设置日期和时间:可以使用`set()`方法来设置特定的日期和时间,例如:`calendar.set(Calendar.YEAR, 2022)`来设置年份为2022。
3.获取日期和时间:可以使用`get()`方法来获取指定日期和时间的值,例如:`int year = calendar.get(Calendar.YEAR)`来获取年份值。
4.对日期和时间进行加减操作:可以使用`add()`方法来对日期和时间进行加减操作,例如:`calendar.add(Calendar.DAY_OF_MONTH, 1)`表示将日期增加1天。
5.获取一周的第几天:可以使用`get()`方法和`Calendar.DAY_OF_WEEK`参数来获取一周中的第几天,星期日为1,星期一为2,以此类推。
6.格式化日期和时间:可以使用`SimpleDateFormat`类或其他日期时间格式化类来格式化日期和时间。
拓展内容:除了以上介绍的常用方法,Calendar类还提供了一些其他功能,例如:-判断是否为闰年:可以使用`isLeapYear()`方法来判断指定年份是否为闰年。
-比较日期:可以使用`compareTo()`方法来比较两个日期的先后关系。
-判断日期和时间的合法性:可以使用`isValid()`方法来判断指定的日期和时间是否合法。
此外,Java 8及更高版本中,还引入了新的日期和时间API,即java.time包下的相关类,如`LocalDate`、`LocalDateTime`和`ZonedDateTime`等,提供了更多便捷、灵活和线程安全的日期和时间处理功能。
java判断国家法定节假日的方法

java判断国家法定节假日的方法全文共四篇示例,供读者参考第一篇示例:Java是一种流行的编程语言,用于开发各种应用程序和系统。
在许多情况下,我们需要判断一个日期是否是国家法定的节假日。
这在许多应用程序中都是必须要考虑的一个问题,比如日历应用程序、假期提醒应用程序等等。
在本文中,我们将讨论如何使用Java编程语言来判断国家法定的节假日的方法。
一般来说,判断一个日期是否是节假日,需要先明确该国家的法定节假日的具体规定。
不同的国家有不同的法定节假日,可以是固定日期的,也可以是依据农历等进行计算的。
在此,我们以中国的法定节假日为例来说明如何判断一个日期是否是法定节假日。
我们需要定义中国的法定节假日的规定:1. 元旦:1月1日2. 春节:农历正月初一至正月十五3. 清明节:农历四月四日4. 劳动节:5月1日至5月3日5. 端午节:农历五月五日6. 中秋节:农历八月十五日7. 国庆节:10月1日至10月7日接下来,我们可以通过编写一个Java程序来判断一个日期是否是中国的法定节假日。
我们可以定义一个方法来判断一个日期是否是一个法定节假日,如下所示:```javapublic static boolean isHoliday(int year, int month, int day) {// 判断元旦if (month == 1 && day == 1) {return true;}// 判断春节// 农历春节的日期需要特殊计算,略...// 判断清明节if (month == 4 && day == 4) {return true;}// 判断劳动节if (month == 5 && day >= 1 && day <= 3) { return true;}// 判断端午节// 农历端午节的日期需要特殊计算,略...// 判断中秋节// 农历中秋节的日期需要特殊计算,略...// 判断国庆节if (month == 10 && day >= 1 && day <= 7) { return true;}return false;}```在上述代码中,我们定义了一个`isHoliday`方法,接收年、月、日三个参数,然后根据中国的法定节假日规定,判断该日期是否是法定节假日。
JAVA处理日期时间常用方法

JA V A处理日期时间常用方法:java.util.CalendarCalendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期提供了一些方法。
瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970 年 1 月1 日的00:00:00。
000,格里高利历的偏移量.例:Calendar cal = Calendar。
getInstance(;//使用默认时区和语言环境获得一个日历。
cal。
add(Calendar.DAY_OF_MONTH, -1;//取当前日期的前一天。
cal。
add(Calendar。
DAY_OF_MONTH, +1;//取当前日期的后一天。
//通过格式化输出日期java.text.SimpleDateFormat format = new java.text。
SimpleDateFormat(”yyyy-MM—dd";System。
out.println("Today is:”+format。
format(Calendar.getInstance(.getTime (;System。
out.println("yesterday is:"+format.format(cal.getTime(;得到2007—12-25日期: Calendar calendar = new GregorianCalendar(2007,11, 25,0,0,0;Date date = calendar.getTime(;System。
out.println("2007 Christmasis:”+format.format(date;//java月份是从0—11,月份设置时要减1。
//GregorianCalendar构造方法参数依次为:年,月—1,日,时,分,秒。
java编写万年历(1900年以后)

int year=in.nextInt();
System.out.println("请输入你想查询的月份:");
int month=in.nextInt();
int sum=0;
for(int i=1900;i<year;i++){
}
for(int i=1;i<=day1;i++,wekday++){
System.out.print(i+"\t");
if((wekday+1)%7==0){
System.out.println();
}
}
}
}
if((i%4==0&&i%100!=0)||i%400==0){
sum+=366;
}else {
sum+=365;
}
}
for(int i=1;i<month;i++){
if(i==2){
if((year%4==0&&year%100!=0)||year%400==0){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day1=31;
break;
case 4:
case 6:
case 9:
case 11:
day1=30;
break;
java日历小程序

java日历小程序简介:Java日历小程序是一个基于Java语言开发的工具,用于显示和管理日期和时间。
它提供了一种简单而直观的方式来查看、创建和编辑日历事件,并提供了一些额外的功能,如提醒、重复事件和时间段的计算等。
本文将详细介绍Java日历小程序的功能、使用方法和设计原理。
功能:1. 显示日历:Java日历小程序可以显示当前月份的日历,并以日、周或月的形式展示。
用户可以通过界面上的上下翻页按钮切换月份,方便查看不同日期的日历。
2. 创建和编辑事件:用户可以通过Java日历小程序创建新的日历事件,并为每个事件指定标题、日期、时间和地点等详细信息。
程序还提供了事件编辑功能,允许用户修改已有事件的信息。
3. 提醒功能:Java日历小程序可以设置事件的提醒功能,提醒用户在指定的时间前提醒。
用户可以选择在事件开始前几分钟、几小时或几天提醒,并可以自定义提醒方式,如弹窗、声音或邮件通知等。
4. 重复事件:用户可以为事件设置重复功能,使事件在指定的日期间隔内重复发生。
可以选择每天、每周、每月或每年重复,并可以设置重复的结束日期。
5. 时间段计算:Java日历小程序可以计算两个日期之间的时间段,如计算两个事件之间的天数、小时数或分钟数等。
用户可以选择计算方式,并获取精确的时间段结果。
使用方法:1. 下载和安装:用户可以从官方网站上下载Java日历小程序的安装包,然后按照安装向导进行安装。
安装完成后,用户可以在桌面或开始菜单中找到程序的快捷方式。
2. 打开程序:双击程序的快捷方式,Java日历小程序将启动并显示当前月份的日历。
用户可以通过界面上的按钮和菜单来使用各种功能。
3. 创建事件:用户可以点击界面上的“添加事件”按钮,弹出一个对话框,输入事件的详细信息,如标题、日期、时间和地点等。
点击“确定”按钮后,事件将被创建并显示在日历上。
4. 编辑事件:用户可以在日历上点击已有的事件,弹出一个对话框,允许用户修改事件的信息。
java日历编写代码

java⽇历编写代码 //Jcalendar.javaimport java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.SystemColor;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Locale;import java.util.Date;import java.util.StringTokenizer;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.JToggleButton;import javax.swing.SwingConstants;import javax.swing.UIManager;/*** <p>Title: Swing⽇历</p>* <p>Description: 操作⽇期</p>* @author duxu2004* @version 1.0.1*/class JCalendar extends JPanel{//动态表⽰年⽉⽇private int year=0;private int month=0;private int day=0;//主⾯板private JPanel Main = new JPanel();//⽇⾯板private JPanel jPanelDay = new JPanel();//⽉⾯板private JPanel jPanelMonth = new JPanel();//年的输⼊位置private JTextField Year = new JTextField();//⽉的输⼊位置private JTextField Month = new JTextField();//减少⽉份private JButton MonthDown = new JButton();//增加⽉份private JButton MonthUp = new JButton();private JPanel jPanelButton = new JPanel();//减少年份private JButton YearDown = new JButton();//增加年份private JButton YearUp = new JButton();//显⽰⽇期的位置private JLabel Out = new JLabel();//中国时区,以后可以从这⾥扩展可以设置时区的功能private Locale l=Locale.CHINESE;//主⽇历private GregorianCalendar cal=new GregorianCalendar(l);//星期⾯板private JPanel weekPanel=new JPanel();//天按钮组private JToggleButton[] days=new JToggleButton[42];//天⾯板private JPanel Days = new JPanel();//标⽰private JLabel jLabel1 = new JLabel();private JLabel jLabel2 = new JLabel();private JLabel jLabel3 = new JLabel();private JLabel jLabel4 = new JLabel();private JLabel jLabel5 = new JLabel();private JLabel jLabel6 = new JLabel();private JLabel jLabel7 = new JLabel();//当前选择的天数按钮private JToggleButton cur=null;//⽉份天数数组,⽤来取得当⽉有多少天// 1 2 3 4 5 6 7 8 9 10 11 12private int[] mm={31,28,31,30,31,30,31,31,30,31,30,31}; //空⽇期构造函数public JCalendar() {try {jbInit();}catch(Exception e) {e.printStackTrace();}}//带⽇期设置的构造函数public JCalendar(int year, int month, int day) {cal.set(year, month, day);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//带⽇历输⼊的构造函数public JCalendar(GregorianCalendar calendar) {cal=calendar;try {jbInit();}catch (Exception e) {e.printStackTrace();}}//带⽇期输⼊的构造函数public JCalendar(Date date) {cal.setTime(date);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//初始化组件private void jbInit() throws Exception {//初始化年、⽉、⽇iniCalender();this.setLayout(new BorderLayout());this.setBorder(BorderFactory.createRaisedBevelBorder()); this.setMaximumSize(new Dimension(200, 200));this.setMinimumSize(new Dimension(200, 200));this.setPreferredSize(new Dimension(200, 200));Main.setLayout(new BorderLayout());Main.setBackground();Main.setBorder(null);Out.setBackground(Color.lightGray);Out.setHorizontalAlignment(SwingConstants.CENTER);Out.setMaximumSize(new Dimension(100, 19));Out.setMinimumSize(new Dimension(100, 19));Out.setPreferredSize(new Dimension(100, 19));jLabel1.setForeground(Color.red);jLabel1.setHorizontalAlignment(SwingConstants.CENTER);jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);jLabel1.setText("⽇");jLabel2.setForeground(Color.blue);jLabel2.setHorizontalAlignment(SwingConstants.CENTER);jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);jLabel2.setText("六");jLabel3.setHorizontalAlignment(SwingConstants.CENTER);jLabel3.setHorizontalTextPosition(SwingConstants.CENTER);jLabel3.setText("五");jLabel4.setHorizontalAlignment(SwingConstants.CENTER);jLabel4.setHorizontalTextPosition(SwingConstants.CENTER);jLabel4.setText("四");jLabel5.setHorizontalAlignment(SwingConstants.CENTER);jLabel5.setHorizontalTextPosition(SwingConstants.CENTER);jLabel5.setText("三");jLabel6.setBorder(null);jLabel6.setHorizontalAlignment(SwingConstants.CENTER);jLabel6.setHorizontalTextPosition(SwingConstants.CENTER);jLabel6.setText("⼆");jLabel7.setBackground(Color.lightGray);jLabel7.setForeground(Color.black);jLabel7.setBorder(null);jLabel7.setHorizontalAlignment(SwingConstants.CENTER);jLabel7.setHorizontalTextPosition(SwingConstants.CENTER);jLabel7.setText("⼀");weekPanel.setBackground(UIManager.getColor("InternalFrame.activeTitleGradient")); weekPanel.setBorder(BorderFactory.createEtchedBorder());weekPanel.setLayout(new GridLayout(1,7));weekPanel.add(jLabel1, null);weekPanel.add(jLabel7, null);weekPanel.add(jLabel6, null);weekPanel.add(jLabel5, null);weekPanel.add(jLabel4, null);weekPanel.add(jLabel3, null);weekPanel.add(jLabel2, null);MonthUp.setAlignmentX((float) 0.0);MonthUp.setActionMap(null);jPanelMonth.setBackground();jPanelMonth.setLayout(new BorderLayout());jPanelMonth.setBorder(BorderFactory.createEtchedBorder());Month.setBorder(null);Month.setHorizontalAlignment(SwingConstants.CENTER);Month.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(MouseEvent e) {Month_mouseClicked(e);}});Month.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(KeyEvent e) {Month_keyPressed(e);}});MonthDown.setBorder(null);MonthDown.setText("\u25C4");MonthDown.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {MonthDown_actionPerformed(e);}});MonthUp.setBorder(null);MonthUp.setText("\u25BA");MonthUp.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {MonthUp_actionPerformed(e);}});jPanelButton.setLayout(null);jPanelButton.setBorder(null);jPanelButton.addComponentListener(new ponentAdapter() { public void componentResized(ponentEvent evt) { jPanelButtonComponentResized(evt);}});Year.setBorder(BorderFactory.createEtchedBorder());Year.setMaximumSize(new Dimension(80, 25));Year.setMinimumSize(new Dimension(80, 25));Year.setPreferredSize(new Dimension(80, 25));Year.setHorizontalAlignment(SwingConstants.CENTER);Year.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(MouseEvent e) {Year_mouseClicked(e);}});Year.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(KeyEvent e) {Year_keyPressed(e);}});YearDown.setBorder(null);YearDown.setMaximumSize(new Dimension(16, 16));YearDown.setMinimumSize(new Dimension(16, 16));YearDown.setPreferredSize(new Dimension(16, 16));YearDown.setSize(new Dimension(16, 16));YearDown.setText("▼");YearDown.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {YearDown_actionPerformed(e);}});YearUp.setBorder(null);YearUp.setMaximumSize(new Dimension(16, 16));YearUp.setMinimumSize(new Dimension(16, 16));YearUp.setPreferredSize(new Dimension(16, 16));YearUp.setSize(new Dimension(16, 16));YearUp.setText("▲");YearUp.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(ActionEvent e) {YearUp_actionPerformed(e);}});jPanelDay.setLayout(new BorderLayout());Days.setLayout(new GridLayout(6,7));Days.setBackground();for(int i=0;i<42;i++){days[i]=new JToggleButton();days[i].setBorder(null);days[i].setBackground();days[i].setHorizontalAlignment(SwingConstants.CENTER);days[i].setHorizontalTextPosition(SwingConstants.CENTER);//days[i].setSize(l,l);days[i].addActionListener(new java.awt.event.ActionListener(){public void actionPerformed(ActionEvent e) {day=Integer.parseInt(((JToggleButton)e.getSource()).getText());showDate();showDays();}});Days.add(days[i]);}this.add(Main, BorderLayout.NORTH);this.add(jPanelDay, BorderLayout.CENTER);this.add(jPanelMonth, BorderLayout.SOUTH);Main.add(Year, BorderLayout.CENTER);Main.add(Out, BorderLayout.WEST);Main.add(jPanelButton, BorderLayout.EAST);jPanelButton.add(YearUp);jPanelButton.add(YearDown);jPanelDay.add(weekPanel,BorderLayout.NORTH);jPanelDay.add(Days, BorderLayout.CENTER);jPanelMonth.add(Month, BorderLayout.CENTER);jPanelMonth.add(MonthDown, BorderLayout.WEST);jPanelMonth.add(MonthUp, BorderLayout.EAST);showMonth();showYear();showDate();showDays();}//⾃定义重画年选择⾯板void jPanelButtonComponentResized(ponentEvent evt){YearUp.setLocation(0,0);YearDown.setLocation(0,YearUp.getHeight());jPanelButton.setSize(YearUp.getWidth(),YearUp.getHeight()*2);jPanelButton.setPreferredSize(new Dimension(YearUp.getWidth(),YearUp.getHeight()*2)); jPanelButton.updateUI();}//测试⽤public static void main(String[] args){JFrame f=new JFrame();f.setContentPane(new JCalendar());f.pack();//f.setResizable(false);f.show();}//增加年份void YearUp_actionPerformed(ActionEvent e) {year++;showYear();showDate();showDays();}//减少年份void YearDown_actionPerformed(ActionEvent e) {year--;showYear();showDate();showDays();}//减少⽉份void MonthDown_actionPerformed(ActionEvent e) {month--;if(month<0) {month = 11;year--;showYear();}showMonth();showDate();showDays();}//增加⽉份void MonthUp_actionPerformed(ActionEvent e) {month++;if(month==12) {month=0;year++;showYear();}showMonth();showDate();showDays();}//初始化年⽉⽇void iniCalender(){year=cal.get(Calendar.YEAR);month=cal.get(Calendar.MONTH);day=cal.get(Calendar.DAY_OF_MONTH);}//刷新⽉份void showMonth(){Month.setText(Integer.toString(month+1)+"⽉");}//刷新年份void showYear(){Year.setText(Integer.toString(year)+"年");}//刷新⽇期void showDate(){Out.setText(Integer.toString(year)+"-"+Integer.toString(month+1)+"-"+Integer.toString(day)); }//重画天数选择⾯板void showDays() {cal.set(year,month,1);int firstDayOfWeek = cal.get(Calendar.DAY_OF_WEEK);int n=mm[month];if(cal.isLeapYear(year)&&month==1) n++;int i=0;for(;i<firstDayOfWeek-1;i++){days[i].setEnabled(false);days[i].setSelected(false);days[i].setText("");}int d=1;for(;d<=n;d++){days[i].setText(Integer.toString(d));days[i].setEnabled(true);if(d==day) days[i].setSelected(true);else days[i].setSelected(false);;i++;}for(;i<42;i++){days[i].setEnabled(false);days[i].setSelected(false);days[i].setText("");}}//单击年份⾯板选择整个年份字符串void SelectionYear(){Year.setSelectionStart(0);Year.setSelectionEnd(Year.getText().length());}//单击⽉份⾯板选择整个⽉份字符串void SelectionMonth(){Month.setSelectionStart(0);Month.setSelectionEnd(Month.getText().length());}//⽉份⾯板响应⿏标单击事件void Month_mouseClicked(MouseEvent e) {//SelectionMonth();inputMonth();}//检验输⼊的⽉份void inputMonth(){String s;if(Month.getText().endsWith("⽉")){s=Month.getText().substring(0,Month.getText().length()-1); }else s=Month.getText();month=Integer.parseInt(s)-1;this.showMe();}//⽉份⾯板键盘敲击事件响应void Month_keyPressed(KeyEvent e) {if(e.getKeyChar()==10)inputMonth();}//年份⾯板响应⿏标单击事件void Year_mouseClicked(MouseEvent e) {//SelectionYear();inputYear();}//年份键盘敲击事件响应void Year_keyPressed(KeyEvent e) {//System.out.print(new Integer(e.getKeyChar()).byteValue()); if(e.getKeyChar()==10)inputYear();}//检验输⼊的年份字符串void inputYear() {String s;if(Year.getText().endsWith("年")){s=Year.getText().substring(0,Year.getText().length()-1); }else s=Year.getText();year=Integer.parseInt(s);this.showMe();}//以字符串形式返回⽇期,yyyy-mm-ddpublic String getDate(){return Out.getText();}//以字符串形式输⼊⽇期,yyyy-mm-ddpublic void setDate(String date){if(date!=null){StringTokenizer f = new StringTokenizer(date, "-");if(f.hasMoreTokens())year = Integer.parseInt(f.nextToken());if(f.hasMoreTokens())month = Integer.parseInt(f.nextToken());if(f.hasMoreTokens())day = Integer.parseInt(f.nextToken());cal.set(year,month,day);}this.showMe();}//以⽇期对象形式输⼊⽇期public void setTime(Date date){cal.setTime(date);this.iniCalender();this.showMe();}//返回⽇期对象public Date getTime(){return cal.getTime();}//返回当前的⽇public int getDay() {return day;}//设置当前的⽇public void setDay(int day) {this.day = day;cal.set(this.year,this.month,this.day);this.showMe();}//设置当前的年public void setYear(int year) {this.year = year;cal.set(this.year,this.month,this.day);this.showMe();}//返回当前的年public int getYear() {return year;}//返回当前的⽉public int getMonth() {return month;}//设置当前的⽉public void setMonth(int month) {this.month = month;cal.set(this.year,this.month,this.day); this.showMe();}//刷新public void showMe(){this.showDays();this.showMonth();this.showYear();this.showDate();}}测试代码JFrame f=new JFrame();f.setContentPane(new JCalendar());f.pack();//f.setResizable(false);// f.show();f.setVisible(true);。
JAVA编写日历实训心得[修改版]
![JAVA编写日历实训心得[修改版]](https://img.taocdn.com/s3/m/77e9597ea0116c175e0e4822.png)
第一篇:JAVA编写日历实训心得班级:**** 姓名:*** 学号:****10010127 java实验报告实验7 日历一、实验目的1. 掌握swt 的容器概念及使用方法。
2. 掌握swt 中的工具栏与菜单的使用方法。
3. 掌握swt 中的表格组件的使用。
4. 掌握swt 各种对话框的使用方法。
二、实验内容:简单日历系统的设计与实现。
三、实验步骤:1. 简单日历系统的设计与实现1) 创建java 类。
在“包资源管理器”中用鼠标右击项目“practical”,选择快捷菜单中“新建”→“visual class”;在打开的“new java visual class ”窗口中,“源文件夹”的默认值是项目的文件夹,不需要更改,“包”栏中输入程序包的名称“ch7”。
“名称”栏中输入类名“su”,在“style ”列表框中选择“swt”→“shell”,选中“public static void main(string[] args) ”复选框,使之自动创建一个main 方法,单击“完成”按钮,一个含有gui 程序界面以及代码的编辑器窗口被打开。
2) 添加组件。
用鼠标右键单击gui 程序界面的任何位置,在快捷菜单中选择“set layout”→“filllayout”。
在“palette”面板中用鼠标单击“swt containers ”中的“viewform”,在程序界面sshell 中添加viewform 容器viewform 。
从pallete 工具栏中依次单击组件:toolbar 和table ,在viewform 容器添加一个工具栏toolbar 和一个表格table ,并在工具栏toolbar 中添加4 个工具栏按钮toolitem~toolitem3;在表格中添加7 个表列tablecolumn~tablecolumn6 。
更改4 个工具栏按钮的text 属性分别为“上一年”、“上个月”、“下个月”和“下一年”;更改7 个表列的text 属性分别为“日”~“六”,如图下所示。
java 年月日的枚举值

java 年月日的枚举值在Java中,可以使用Java 8中引入的java.time包中的枚举类型来表示年、月、日。
具体来说,可以使用Year、Month和DayOfWeek枚举类型来分别表示年、月和星期几。
1. Year枚举类型:Year枚举类型用于表示年份,它可以通过静态方法Year.now()获取当前的年份,也可以使用of()方法指定特定的年份。
例如:java.Year currentYear = Year.now();Year specificYear = Year.of(2022);2. Month枚举类型:Month枚举类型用于表示月份,它包括了1月到12月的枚举常量。
可以通过静态方法Month.valueOf("JANUARY")来获取特定月份的枚举常量,也可以直接使用Month.JANUARY这样的方式来表示月份。
例如:java.Month currentMonth = Month.JANUARY;Month specificMonth = Month.valueOf("FEBRUARY");3. DayOfWeek枚举类型:DayOfWeek枚举类型用于表示星期几,它包括了MONDAY到SUNDAY的枚举常量。
可以通过静态方法DayOfWeek.valueOf("MONDAY")来获取特定星期几的枚举常量,也可以直接使用DayOfWeek.MONDAY这样的方式来表示星期几。
例如:java.DayOfWeek currentDay = DayOfWeek.MONDAY;DayOfWeek specificDay = DayOfWeek.valueOf("TUESDAY");通过使用这些枚举类型,可以方便地表示和操作年、月、日的值,使得日期和时间的处理更加直观和简洁。
同时,Java 8中引入的新的日期时间API也提供了丰富的方法来对日期进行计算、格式化和解析,枚举类型的使用使得这些操作更加方便和安全。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package SWT;
import javax.swing.*;
import java.awt.*;
import java.util.Calendar;
import java.util.Date;
import java.awt.event.*;
public class MyCalendar extends JFrame {
JLabel labels[][];//用于设定日历的内容
int months[]={31,28,31,30,31,30,31,31,30,31,30,31};
private int year;//获取是哪一年
private int month;//获取月份的信息
private int days;//看这个月共多少天
private int index;//判断这个月的第一天是周几
JPanel pCenter;
JTextField text;
public static void main(String[]args)
{
MyCalendar calendar = new MyCalendar();
calendar.setVisible(true);
}
/**
*
*/
public MyCalendar()
{
setTitle("章式日历");
setBounds(100,100,356,356);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pCenter = new JPanel();
pCenter.setBackground(Color.pink);
GridLayout gridLayout = new GridLayout(7,7);
gridLayout.setVgap(10);
gridLayout.setHgap(10);
pCenter.setLayout(gridLayout);
getContentPane().add(pCenter,BorderLayout.CENTER);
labels = new JLabel[7][7];
String week[] = {"日","一","二","三","四","五","六"};
for(int i = 0;i < 7;i++)
{
labels[0][i]= new JLabel(week[i]);
pCenter.add(labels[0][i]);
}
for(int i = 1;i < 7;i++)
{
for(int j = 0;j < 7;j++)
{
labels[i][j]= new JLabel(" ");
pCenter.add(labels[i][j]);
}
}
Date date = new Date();
String year1 = String.format("%tY",date);
String month1 = String.format("%tm", date);
year = Integer.valueOf(year1);
month = Integer.valueOf(month1) - 1;
getIndex(year,month);
setArray(index);
JPanel pSouth = new JPanel();
pSouth.setBackground(Color.green);
pSouth.setLayout(new FlowLayout());
String t = "日历:"+year+"年"+(month+1)+"月";
text = new JTextField(t);
text.setEditable(false);
pSouth.add(text);
getContentPane().add(pSouth,BorderLayout.SOUTH);
JPanel pNorth = new JPanel();
pNorth.setBackground(Color.bule);
pNorth.setLayout(new FlowLayout());
JButton previousMonth = new JButton("上月"); JButton nextMonth = new JButton("下月"); previousMonth.addActionListener(new ButtonAction()); nextMonth.addActionListener(new ButtonAction()); pNorth.add(previousMonth);
pNorth.add(nextMonth);
getContentPane().add(pNorth,BorderLayout.NORTH); final JLabel left = new JLabel();
left.setPreferredSize(new Dimension(10,0));
getContentPane().add(left,BorderLayout.WEST);
final JLabel right = new JLabel();
right.setPreferredSize(new Dimension(10,0));
getContentPane().add(right,BorderLayout.EAST);
}
//得到某个月第一天是周几,和这个月共有多少天public void getIndex(int year,int month)
{
this.year = year;
this.month = month;
Calendar calendar = Calendar.getInstance();
calendar.set(year,month,1);
index = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if(month == 1)
{
if(year%100 == 0 && year%400 ==0)
{
days = 29;
}
else if(year%4 == 0 )
{
days = 29;
}
else
days = months[1];
}
else
{
days = months[month];
}
}
//设置数组的填充内容
public void setArray(int index)
{
for(int i = 1;i < 7;i++)
{
for(int j = 0;j < 7;j++)
{
labels[i][j].setText(" ");
}
}
int day = 1;
for(int i = index;i < 7;i++)
{
labels[1][i].setText(String.valueOf(day++));
}
for(int i = 2;i < 7;i++)
{
for(int j = 0;j < 7;j++)
{
if(day<= days)
{
labels[i][j].setText(String.valueOf(day++));
}
}
}
}
class ButtonAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JButton button = (JButton)e.getSource();
String buttonName = e.getActionCommand();
if(buttonName.equals("上月"))
{
month = month-1;
if(month < 0)
{
year = year-1;
month = 11;
}
}
else
{
month = month + 1;
if(month > 11)
{
year = year + 1;
month = 0;
}
}
getIndex(year,month);
setArray(index);
text.setText("日历:"+year+"年"+(month+1)+"月");
}
}
}。