「日历管理java」日历管理系统

博主:adminadmin 2023-03-17 18:21:09 629

今天给各位分享日历管理java的知识,其中也会对日历管理系统进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中解释一些日历类(CalendarClass)中的重要方法?

Calendar类(理解)

Calendar类是采用手工的方式取得日期,可以通过此类精确到毫秒,此类的定义如下:

public abstract class Calendar extends Object

implements Serializable, Cloneable, ComparableCalendar

这个类本身是一个抽象类,抽象类要想实例化肯定使用子类:GregorianCalendar

package org.lxh.api.datedemo;

import java.util.Calendar;

import java.util.GregorianCalendar;

public class CalendarDemo {

public static void main(String[] args) {

Calendar calendar = new GregorianCalendar();

System.out.println("YEAR: " + calendar.get(Calendar.YEAR));

System.out.println("MONTH: " + (calendar.get(Calendar.MONTH) + 1));

System.out.println("DATE: " + calendar.get(Calendar.DATE));

System.out

.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));

System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));

System.out.println("SECOND: " + calendar.get(Calendar.SECOND));

System.out

.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));

}

}

但是现在有一个问题,如果每次取时间都按照这种方式取的话,那么得累死,那么能不能设计一个类,可以通过此

类直接取得时间呢,例如:现在给出了如下的一个接口:

package org.lxh.api.datedemo;

public interface DateTime {

/**

*取得日期

* @return 日期的字符串,例如:2009-12-22

*/

public String getDate() ;

/**

*取得日期时间

* @return 日期时间的字符串,例如:2009-12-22 11:06:23.345

*/

public String getDateTime() ;

/**

*取得时间戳

* @return 返回时间戳的字符串,例如:20091222110623345

*/

public String getTimeStamp() ;

}

前面需要补0的问题需要注意,例如:01。

package org.lxh.api.datedemo;

import java.util.Calendar;

import java.util.GregorianCalendar;

public class DateTimeImpl implements DateTime {

private Calendar calendar;

public DateTimeImpl() {

this.calendar = new GregorianCalendar();

}

public String getDate() {

StringBuffer buf = new StringBuffer();

buf.append(calendar.get(Calendar.YEAR)).append("-");

buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)).append("-");

buf.append(this.addZero(calendar.get(Calendar.DATE), 2));

return buf.toString();

}

public String getDateTime() {

StringBuffer buf = new StringBuffer();

buf.append(calendar.get(Calendar.YEAR)).append("-");

buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)).append("-");

buf.append(this.addZero(calendar.get(Calendar.DATE), 2)).append(" ");

buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)).append(":") ;

buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)).append(":") ;

buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)).append(".") ;

buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)) ;

return buf.toString();

}

@Override

public String getTimeStamp() {

StringBuffer buf = new StringBuffer();

buf.append(calendar.get(Calendar.YEAR));

buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2));

buf.append(this.addZero(calendar.get(Calendar.DATE), 2));

buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));

buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)) ;

buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)) ;

buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)) ;

return buf.toString();

}

private String addZero(int num, int len) {

StringBuffer buf = new StringBuffer();

buf.append(num);

while (buf.length() len) {

buf.insert(0, 0);

}

return buf.toString();

}

}

编写JAVA程序实现一个简单的日历(高分求高手)(追加分)

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.table.*;

public class MyCalendar extends JApplet {

public static final String WEEK_SUN = "SUN";

public static final String WEEK_MON = "MON";

public static final String WEEK_TUE = "TUE";

public static final String WEEK_WED = "WED";

public static final String WEEK_THU = "THU";

public static final String WEEK_FRI = "FRI";

public static final String WEEK_SAT = "SAT";

public static final Color background = Color.white;

public static final Color foreground = Color.black;

public static final Color headerBackground = Color.blue;

public static final Color headerForeground = Color.white;

public static final Color selectedBackground = Color.blue;

public static final Color selectedForeground = Color.white;

private JPanel cPane;

private JLabel yearsLabel;

private JSpinner yearsSpinner;

private JLabel monthsLabel;

private JComboBox monthsComboBox;

private JTable daysTable;

private AbstractTableModel daysModel;

private Calendar calendar;

public MyCalendar() {

cPane = (JPanel) getContentPane();

}

public void init() {

cPane.setLayout(new BorderLayout());

calendar = Calendar.getInstance();

calendar = Calendar.getInstance();

yearsLabel = new JLabel("Year: ");

yearsSpinner = new JSpinner();

yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));

yearsSpinner.setValue(new Integer(calendar.get(Calendar.YEAR)));

yearsSpinner.addChangeListener(new ChangeListener() {

public void stateChanged(ChangeEvent changeEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue()).intValue());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day maxDay ? maxDay : day);

updateView();

}

});

JPanel yearMonthPanel = new JPanel();

cPane.add(yearMonthPanel, BorderLayout.NORTH);

yearMonthPanel.setLayout(new BorderLayout());

yearMonthPanel.add(new JPanel(), BorderLayout.CENTER);

JPanel yearPanel = new JPanel();

yearMonthPanel.add(yearPanel, BorderLayout.WEST);

yearPanel.setLayout(new BorderLayout());

yearPanel.add(yearsLabel, BorderLayout.WEST);

yearPanel.add(yearsSpinner, BorderLayout.CENTER);

monthsLabel = new JLabel("Month: ");

monthsComboBox = new JComboBox();

for (int i = 1; i = 12; i++) {

monthsComboBox.addItem(new Integer(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));

monthsComboBox.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

int day = calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.set(Calendar.MONTH, monthsComboBox.getSelectedIndex());

int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, day maxDay ? maxDay : day);

updateView();

}

});

JPanel monthPanel = new JPanel();

yearMonthPanel.add(monthPanel, BorderLayout.EAST);

monthPanel.setLayout(new BorderLayout());

monthPanel.add(monthsLabel, BorderLayout.WEST);

monthPanel.add(monthsComboBox, BorderLayout.CENTER);

daysModel = new AbstractTableModel() {

public int getRowCount() {

return 7;

}

public int getColumnCount() {

return 7;

}

public Object getValueAt(int row, int column) {

if (row == 0) {

return getHeader(column);

}

row--;

Calendar calendar = (Calendar) MyCalendar.this.calendar.clone();

calendar.set(Calendar.DAY_OF_MONTH, 1);

int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

int moreDayCount = calendar.get(Calendar.DAY_OF_WEEK) - 1;

int index = row * 7 + column;

int dayIndex = index - moreDayCount + 1;

if (index moreDayCount || dayIndex dayCount) {

return null;

} else {

return new Integer(dayIndex);

}

}

};

daysTable = new CalendarTable(daysModel, calendar);

daysTable.setCellSelectionEnabled(true);

daysTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

daysTable.setDefaultRenderer(daysTable.getColumnClass(0), new TableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

String text = (value == null) ? "" : value.toString();

JLabel cell = new JLabel(text);

cell.setOpaque(true);

if (row == 0) {

cell.setForeground(headerForeground);

cell.setBackground(headerBackground);

} else {

if (isSelected) {

cell.setForeground(selectedForeground);

cell.setBackground(selectedBackground);

} else {

cell.setForeground(foreground);

cell.setBackground(background);

}

}

return cell;

}

});

updateView();

cPane.add(daysTable, BorderLayout.CENTER);

}

public static String getHeader(int index) {

switch (index) {

case 0:

return WEEK_SUN;

case 1:

return WEEK_MON;

case 2:

return WEEK_TUE;

case 3:

return WEEK_WED;

case 4:

return WEEK_THU;

case 5:

return WEEK_FRI;

case 6:

return WEEK_SAT;

default:

return null;

}

}

public void updateView() {

daysModel.fireTableDataChanged();

daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH),

calendar.get(Calendar.WEEK_OF_MONTH));

daysTable.setColumnSelectionInterval(calendar.get(Calendar.DAY_OF_WEEK) - 1,

calendar.get(Calendar.DAY_OF_WEEK) - 1);

}

public static class CalendarTable extends JTable {

private Calendar calendar;

public CalendarTable(TableModel model, Calendar calendar) {

super(model);

this.calendar = calendar;

}

public void changeSelection(int row, int column, boolean toggle, boolean extend) {

super.changeSelection(row, column, toggle, extend);

if (row == 0) {

return;

}

Object obj = getValueAt(row, column);

if (obj != null) {

calendar.set(Calendar.DAY_OF_MONTH, ((Integer)obj).intValue());

}

}

}

public static void main(String[] args) {

JFrame frame = new JFrame("Calendar Application");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MyCalendar myCalendar = new MyCalendar();

myCalendar.init();

frame.getContentPane().add(myCalendar);

frame.setSize(240, 172);

frame.show();

}

}

求Java 日历的小程序的源代码

也不知道你具体需求是什么,以前改过一个日历程序,一共四个java类,放在同一个包里。经测试可以运行。

//Start.java

import java.awt.*;

import javax.swing.*;

class Start{

public static void main(String [] args){

DateFrame frame=new DateFrame();

frame.setLocationRelativeTo(frame);

frame.setResizable(false);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

//DateInfo.java

import java.util.*;

public class DateInfo{

private int mYear, mMonth;

private int mDayOfMonth, mFristWeek;

public DateInfo(int year, int month) throws DateException{

mYear = year;

if (month 0 || month 12){

throw (new DateException());

}

mMonth = month;

mDayOfMonth = getDayOfMonth(mYear, mMonth);

mFristWeek = getFristWeek(mYear, mMonth);

}

private int getDayOfMonth(int year, int month){

int[][] ary = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},

{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};

return (ary[isLeapYear(year)][month]);

}

private int isLeapYear(int year){

if (year % 4 == 0 year % 100 != 0 ||year % 400 == 0){

return (1);

}

else{

return (0);

}

}

private int getFristWeek(int year, int month){

java.util.Calendar cal = Calendar.getInstance();

cal.set(year, month - 1, 1);

return (cal.get(Calendar.DAY_OF_WEEK) - 1);

}

public String toString(){

String str;

str = "\t\t" + mYear + "年" + mMonth + "月\n";

str += "日\t一\t二\t三\t四\t五\t六\n";

int i;

for (i = 1; i = mFristWeek; i++){

str += " \t";

}

for (int j = 1; j = mDayOfMonth; j++, i++){

str +=j+"\t" ;

if (i % 7 == 0){

str += "\n";

}

}

return (str);

}

}

//DateFrame.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Calendar;

class DateFrame extends JFrame implements Runnable{

Calendar date=Calendar.getInstance();

String[] str={"1","2","3","4","5","6","7","8","9","10","11","12"};

JLabel lblYear=new JLabel("年 ");

JLabel lblMonth=new JLabel("月 ");

JLabel lblDate=new JLabel("现在的时间是:");

JLabel lblShowDate=new JLabel();

// javax.swing.JTextField trxt =new JTextField(10);

// trxt.setHorizontalAlignment(JTextField.RIGHT); //设置文本从右边输入

JComboBox cboMonth=new JComboBox(str);

JComboBox cboYear=new JComboBox();

JTextArea txaShow=new JTextArea();

JPanel pnlNorth=new JPanel();

JPanel pnlSOUTH=new JPanel();

JButton btnShow=new JButton("显示");

JButton btnClose=new JButton("关闭");

JScrollPane jsp=new JScrollPane(txaShow);

Container c=this.getContentPane();

public DateFrame(){

Thread thread=new Thread(this);

thread.start();

this.setTitle("玩玩日历拉!!!");

this.setSize(300,260);

for (int i = 1990; i=2025; i++) {

cboYear.addItem(""+i);

}

cboYear.setSelectedItem(""+(date.get(Calendar.YEAR)));

cboMonth.setSelectedItem(""+(date.get(Calendar.MONTH)+1));

pnlNorth.add(cboYear);

txaShow.setTabSize(4); //设置tab键的距离

txaShow.setForeground(Color.GREEN);

pnlNorth.add(lblYear);

pnlNorth.add(cboMonth);

pnlNorth.add(lblMonth);

pnlNorth.add(lblDate);

pnlNorth.add(lblShowDate);

c.add(pnlNorth,BorderLayout.NORTH);

c.add(jsp);

pnlSOUTH.add(btnShow);

pnlSOUTH.add(btnClose);

c.add(pnlSOUTH,BorderLayout.SOUTH);

btnShow.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

int year=Integer.parseInt((String)cboYear.getSelectedItem());

int month=Integer.parseInt((String)cboMonth.getSelectedItem());

try {

DateInfo date=new DateInfo(year,month);

txaShow.setText(""+date);

}

catch (DateException ex) {

ex.printStackTrace();

}

}

});

btnClose.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

}

public void run(){

try {

while(true){

Thread.sleep(1000);

int hour=date.get(Calendar.HOUR);

int minute=date.get(Calendar.MINUTE);

int second=date.get(Calendar.SECOND);

String str=hour+":"+minute+":"+second;

lblShowDate.setText(str);

//this.repaint();

}

}

catch (Exception ex) {

ex.printStackTrace();

}

}

}

//DateException.java

public class DateException extends Exception{

public DateException(){

super("日期数据不合法.");

}

}

Java中日历类(CalendarClass)的用途?

Java中日历类(Calendar类)的用途如下:

Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now =         Calendar.getInstance();    

可以使用下面三个方法把日历定到任何一个时间:

     set(int year ,int month,int date)  ;

     set(int year ,int month,int date,int hour,int minute) ;

     set(int year ,int month,int date,int hour,int minute,int second) ;

如果想获得年份、月份、小时等信息可以使用:  

      Now.get(Calendar.Month);//这样的方法 0表示一月,1表示二月  

     get(Calendar.DAY_OF_MONTH);//获得这个月的第几天

     get(Calendar.DAY_OF_WEEK);//获得这个星期的第几天 

     get(Calendar.DAY_OF_YEAR);//获得这个年的第几天  

       getTimeMillis();//获得当前时间的毫秒表示

1.计算某一月份的最大天数

    Calendar time=Calendar.getInstance(); 

    time.clear(); 

    time.set(Calendar.YEAR,year); 

    time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0             

    int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数

    注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间

    2.Calendar和Date的转化

    (1) Calendar转化为Date

    Calendar cal=Calendar.getInstance();

    Date date=cal.getTime();

    (2) Date转化为Calendar

    Date date=new Date();

    Calendar cal=Calendar.getInstance();

    cal.setTime(date);

    3.格式化输出日期时间

    Date date=new Date();

    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    System.out.println(df.format(date));

4.计算相隔天数的方法

    public int getDaysBetween (Calendar d1, Calendar d2){

      if (d1.after(d2)){  // swap dates so that d1 is start and d2 is end

           java.util.Calendar swap = d1;

           d1 = d2;

           d2 = swap;

      }

      int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);

      int y2 = d2.get(Calendar.YEAR);

     if (d1.get(Calendar.YEAR) != y2){

           d1 = (Calendar) d1.clone();

           do{

             days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数

               d1.add(Calendar.YEAR, 1);

          } while (d1.get(Calendar.YEAR) != y2);

      }

       return days;

    }

设计一个日历月历系统,支持节日查询,任务提醒功能,用java语言来实现,是Java

你最好先自己写,不会的地方在贴出来,不然这个没法回答啊!

如何用JAVA写日历?

按照你的要求编写的Java日历验证程序如下

UI.java

import java.util.Scanner;

public class UI {

 static Scanner sc=new Scanner(System.in);

 public static int askInt(String s){

  System.out.print(s);

  return sc.nextInt();

 }

 public static void println(String s){

  System.out.println(s);

 }

}

EE.java

public class EE {

 public void validateDateCore(){

  int year =UI.askInt("Enter the year: ");

  int month=UI.askInt("Enter the month: ");

  int day=UI.askInt("Enter the day: ");

  if(year  1){

   UI.println("The year is not a valid number.");

   return;

  }

  if(month1 || month12){

   UI.println("The month is not a valid number.");

   return;

  }

  int monthDay=0;

  switch(month){

   case 1:

   case 3:

   case 5:

   case 7:

   case 8:

   case 10:

   case 12:monthDay=31;break;

   case 4:

   case 6:

   case 9:

   case 11:monthDay=30;break;

   case 2:

    if((year%4==0  year%100!=0) || year%400==0){

     monthDay=29;

    }else{

     monthDay=28;

    }

    break;

  }

  if(day1 || daymonthDay){

   UI.println("The day is not a valid number.");

   return;

  }else{

   UI.println("It is "+day+"/"+month+"/"+year+".");

  }

 }

 public static void main(String[] args) {

  new EE().validateDateCore();

 }

}

运行结果

日历管理java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于日历管理系统、日历管理java的信息别忘了在本站进行查找喔。