java万年历程序
public Mycalendar()
{
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.DateFormat ;
import java.text.SimpleDateFormat ;
import java.util.Calendar ;
import java.util.Date ;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class Mycalendar extends JFrame implements ActionListener , MouseListener {
private Calendar cld = Calendar .getInstance();
private String [] astr = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
private DefaultTableModel dtm = new DefaultTableModel(null ,astr);
private JTable table = new JTable(dtm); //装日期的表格
private JScrollPane sp = new JScrollPane(table);
private JButton bLastYear = new JButton("上一年");
private JButton bNextYear = new JButton("下一年");
private JButton bLastMonth = new JButton("上月");
private JButton bNextMonth = new JButton("下月");
private JTextField jtfYear = new JTextField(5);//jtfYear 年份显示和输入文本框
private JTextField jtfMonth = new JTextField(2);//jtfMonth 月份显示文本框
private JPanel p1 = new JPanel(); //装入控制日期按钮的模块
private JPanel p2 = new JPanel();
private JPanel p3 = new JPanel(new BorderLayout ());
private JPanel p4 = new JPanel(new GridLayout (2,1));
private JPanel p5 = new JPanel(new BorderLayout ());
private JButton bAdd = new JButton("保存日志");
private JButton bDel = new JButton("删除日志");
private JTextArea jta = new JTextArea();
private JScrollPane jsp = new JScrollPane(jta);
//jta--JTextArea
private JLabel l = new JLabel("您可以在年份文本框中键入您要查找的年份");
private JLabel lt = new JLabel();
private JLabel ld = new JLabel();
private int lastTime;
super("万年历记事本"); //框架命名
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭函数
this.getContentPane().setLayout(new BorderLayout(10, 0));
jta.setLineWrap(true);
table.setGridColor(Color.GRAY); //星期之间的网格线是灰色的
table.setColumnSelectionAllowed(true);
table.setSelectionBackground(Color.BLACK);//当选定某一天时这一天背景黑色table.setSelectionForeground(Color.RED);//选定的日期字体是绿色的
table.setBackground(new Color(242,240,33));//日期显示表格颜色蓝色table.setFont(new Font("楷体",Font.BOLD,15));//日期数字字体格式
table.setRowHeight(30);//表格的高度
table.addMouseListener(this); //鼠标监听器
jtfYear.addActionListener(this);//可输入年份的文本框
//为各个按钮添加监听函数
bAdd.addActionListener(this);
bDel.addActionListener(this);
bLastYear.addActionListener(this);
bNextYear.addActionListener(this);
bLastMonth.addActionListener(this);
bNextMonth.addActionListener(this);
//将按钮添加到Jpanel上
p1.add(bLastYear);
p1.add(jtfYear);//年份输入文本框
p1.add(bNextYear);
p1.add(bLastMonth);
p1.add(jtfMonth);
p1.add(bNextMonth);
p2.add(bAdd);
p2.add(bDel);
p3.add(jsp, BorderLayout.CENTER);
p3.add(p2, BorderLayout.SOUTH);
p3.add(ld, BorderLayout.NORTH);
p4.add(l);
p4.add(lt);
p5.add(p4, BorderLayout.SOUTH);
p5.add(sp, BorderLayout.CENTER);
p5.add(p1, BorderLayout.NORTH);
this.getContentPane().add(p5, BorderLayout.CENTER);
this.getContentPane().add(p3, BorderLayout.EAST);
String [] strDate = DateFormat.getDateInstance().format(new Date()).split("-");//获得
日期
cld.set(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1])-1, 1);
showCalendar(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1]), cld);
jtfMonth.setEditable(false);//设置月份的文本框为不可编辑
jtfYear.setText(strDate[0]);
jtfMonth.setText(strDate[1]);
this.showTextArea(strDate[2]);
ld.setFont(new Font("楷体",Font.BOLD,14));
new Timer(lt).start();
this.setBounds(200,200,600,320);
this.setResizable(false);
this.setVisible(true);
}
public void showCalendar(int localYear, int localMonth, Calendar cld)
{
int Days = getDaysOfMonth(localYear, localMonth) + cld.get(Calendar.DAY_OF_WEEK) - 2;
Object [] ai = new Object[7];
lastTime = 0;
for (int i = cld.get(Calendar.DAY_OF_WEEK)-1; i <= Days; i++)
{
ai[i%7] = String.valueOf(i- (cld.get(Calendar.DAY_OF_WEEK)-2));
if (i%7 == 6)
{
dtm.addRow(ai);
ai = new Object[7];
lastTime++;
}
}
dtm.addRow(ai);
}
public int getDaysOfMonth(int year, int Month) //显示所选月份的天数
{
if(Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8 || Month == 10 || Month == 12)
{
return 31;
}
if(Month == 4 || Month == 6 || Month == 9 || Month == 11)
{
return 30;
}
if(year%4 == 0 && year%100 != 0 || year%400 == 0)//闰年
{
return 29;
}
else
{
return 28;
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == jtfYear || e.getSource() == bLastYear || e.getSource() == bNextYear ||
e.getSource() == bLastMonth || e.getSource() == bNextMonth)
{
int m, y;
try//控制输入的年份正确,异常控制
{
if (jtfYear.getText().length() != 4)
{
throw new NumberFormatException();
}
y = Integer.parseInt(jtfYear.getText());
m = Integer.parseInt(jtfMonth.getText());
}
catch (NumberFormatException ex)
{
JOptionPane.showMessageDialog(this, "请输入位-9的数字! ", "年份有误", JOptionPane.ERROR_MESSAGE);
return ;
}
ld.setText("没有选择日期");
for (int i = 0; i < lastTime+1; i++){ dtm.removeRow(0);}
if(e.getSource() == bLastYear){ jtfYear.setText(String.valueOf(--y)); }
if(e.getSource() == bNextYear){jtfYear.setText(String.valueOf(++y)); }
if(e.getSource() == bLastMonth)
{
if(m == 1)
{
jtfYear.setText(String.valueOf(--y));
m = 12;
jtfMonth.setText(String.valueOf(m));
}
else
{
jtfMonth.setText(String.valueOf(--m));
}
}
if(e.getSource() == bNextMonth)
{
if(m == 12)
{
jtfYear.setText(String.valueOf(++y));
m = 1;
jtfMonth.setText(String.valueOf(m));
}
else
{
jtfMonth.setText(String.valueOf(++m));
}
}
cld.set(y, m-1, 0);
showCalendar(y, m, cld);
}
if(e.getSource() == bAdd)
{
int r = table.getSelectedRow();
int c = table.getSelectedColumn();
if(!ld.getText().equals("没有选择日期"))
{
try
{
File file = new File(ld.getText() + ".txt");
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
bw.write(jta.getText());
bw.close();
}
catch (FileNotFoundException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
if(e.getSource() == bDel)
{
int r = table.getSelectedRow();
int c = table.getSelectedColumn();
File filedel = new File(ld.getText() + ".txt");
if(filedel.exists())
{
if(filedel.delete())
{
jta.setText("日志删除成功");
}
else
{
jta.setText("日志删除失败");
}
}
else
{
jta.setText("没有找到日志文件");
}
}
}
public void mouseClicked(MouseEvent e)
{
jta.setText(null);
int r = table.getSelectedRow();
int c = table.getSelectedColumn();
if (table.getValueAt(r,c) == null)
{
ld.setText("没有选择日期");
}
else
{
this.showTextArea(table.getValueAt(r,c));
}
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
private void showTextArea(Object selected)
{
ld.setText(jtfYear.getText()+"年"+jtfMonth.getText()+"月"+selected+"日");
File filein = new File(ld.getText() + ".txt");
if(filein.exists())
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filein)));
String strRead = br.readLine();
jta.setText(null);
while(strRead != null)
{
jta.append(strRead);
strRead = br.readLine();
}
br.close();
}
catch (FileNotFoundException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
new Mycalendar();
}
}
class Timer extends Thread//显示系统时间
{
private JLabel lt;
private SimpleDateFormat fy = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
private SimpleDateFormat fn = new SimpleDateFormat("yyyy.MM.dd G 'at' HH mm ss z");
private boolean b = true;
public Timer(JLabel lt)
{
this.lt = lt;
}
public void run()
{
while (true)
{
try
{
if (b)
{
lt.setText(fy.format(new Date()));
}
else
{
lt.setText(fn.format(new Date()));
}
b = !b;
this.sleep(500);
}
catch (InterruptedException ex)
{
ex.printStackTrace();
}
}
}
}
日历源代码——java
日历源代码——java //import java.sql.Date; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; public class GregorianCalendar日历 { public static void main(String[] args) { //设置不同地区 Locale.setDefault(https://www.360docs.net/doc/4719200991.html,); //创建当前日历对象 GregorianCalendar now = new GregorianCalendar(); //从当前时期对象是取出时间日期对象 //编辑错误:Type mismatch: cannot convert from java.util.Date to java.sql.Date Date date = now.getTime(); //将时间日期对象按字符形式打印 System.out.println(date.toString()); //重新将时间对象设置到日期对象中 now.setTime(date); //从当前日期对象是取出当前月份、日期 int today = now.get(Calendar.DAY_OF_MONTH); int month = now.get(Calendar.MONTH); //获取本月开始日期 now.set(Calendar.DAY_OF_MONTH, 1); //获取本月开始日期在一周中的编号 int week = now.get(Calendar.DAY_OF_WEEK); //打印日历头并换行设置当前月中第一天的开始位置
万年历课程设计说明书
******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年秋季学期 Java 课程设计 题目:万年历的设计 专业班级: 姓名: 学号: 指导教师: 成绩:
目录 摘要 (2) 序言 (3) 正文 (4) 一、系统分析与设计 (4) 二、详细设计 (5) 2.1 类Calendars (5) 2.2 类Time (5) 2.3 类CalTabel (5) 三、系统测试 (6) 四、软件使用说明书 (9) 设计总结 (10) 参考文献 (11) 致谢 (12) 附录1(源代码) (13)
摘要 根据万年历的需要,设计一个万年历的程序,实现在此万年历表中有关日期和时间的基本操作:显示当时系统的日期和时间;显示当日的年和月;通过查询显示指定年、月的日历;设置北京时间,以显示北京和格林威治的时间并以设定的时间开始计时。设置时间和查询日历通过设计的窗体执行和显示。 关键词:万年历;图形界面;java技术
序言 1996年Java第一次发布就引起了人们的极大兴趣。关注Java的人士不仅限于计算机出版界,还有诸如《纽约时报》、《华盛顿邮报》、《商业周刊》这样的主流媒体。Java时第一种也是唯一一种在National Public Radio上占用了十分钟时间进行介绍的程序设计语言,并且还得到了$100 000 000的风险投资基金。这些基金全部用来支持这种特别的计算机语言开发的产品。 Java语言在Internet舞台上以及亮相便名声大噪,其原因在于它将有望成为连接用户与信息的万能胶,而不论这些信息来源于Web服务器、数据库、信息提供商,还是任何其他渠道,Java固有的可靠性与安全性不仅令Java程序员放心,也令使用Java程序的用户放心。 而此次将用Java设计一个万年历表,我们更加了解Java面向对象的程序设计语言。
用Java程序编写万年历程序的设计报告
用Java程序编写万年历程序的设计报告 一、引言 万年历是一种常见的工具,用于显示特定日期的星期几、农历日期、节气等信息。本设计报告旨在介绍使用Java编写万年历程序的设计过程和实现细节。 二、需求分析 1. 显示当前日期的星期几和农历日期; 2. 支持用户输入指定日期,显示该日期的星期几和农历日期; 3. 显示当月的日历,并标记当天; 4. 支持用户选择不同年份和月份,显示相应的日历; 5. 显示当天的节气。 三、设计思路 1. 日期计算:使用Java提供的日期和时间类,如`java.util.Calendar`,来进行日 期计算和格式化; 2. 农历计算:根据农历算法,计算指定日期的农历日期和节气; 3. 用户界面:使用Java图形用户界面(GUI)库,如`javax.swing`,来实现用 户界面; 4. 数据展示:使用文本框、标签等组件来展示日期、星期几、农历日期和节气。 四、程序实现 1. 创建Java项目,并导入所需的库; 2. 创建主界面窗口,设置布局和组件;
3. 添加日期选择器,用于选择年份和月份; 4. 添加按钮,用于触发日期查询和切换月份; 5. 根据用户选择的日期,计算并显示星期几、农历日期和节气; 6. 根据用户选择的年份和月份,计算并显示当月的日历; 7. 标记当天的日期; 8. 添加事件监听器,处理用户的操作。 五、代码示例 ```java // 导入所需的库 import java.util.Calendar; import java.util.Date; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class CalendarProgram extends JFrame { private JLabel dateLabel; private JLabel weekdayLabel; private JLabel lunarLabel; private JLabel festivalLabel; private JPanel calendarPanel;
Java编写-万年历
师大学远程教育学院考查课 科目__java程序设计__ 姓名____霍娟______学号___002__ 专业__计算机科学与技术__批次_161______层次_____专升本____学习中心__职业技术学院__
J a v a万年历 一项目概述:这个项目是一个简单的Java万年历,可以实现所有年份的公历日期的查询,并且在相应的日期做备忘录,以及可以显示当前的日期以及时间。 使用的是Oracle数据库进行连接。 二具体功能介绍: (1)万年历查询:点击图形界面中的上年、下年键用来调整要查询的年份,或者可以直接在上年下年按钮直接的文本框中输入年份(负数表示公元前),以回车结束;点击上月或者下月来调整要查询的月份,然后可以看到这个月的每一天所对应的星期。 (2)Clock功能:在万年历下面显示当前的年月日时分秒,相当于一个时钟的功能。 (3)记事本功能:可以任选某年某月的某一天,单击,在右侧会出现这一天的
备忘录,如果存在,则显示某年某月某日有日志记载,是否想看,否则,则在文本框中显示无记录;然后可以编辑这一天的备忘录,编辑好了之后,点击保存日志,弹出对话框某年某月某日保存日志吗,点击保存,则日志被保存,反之未被保存;若想删除某日的日志,则单击这一天,然后点击右侧的删除日志,显示删除某年某月某日的日志吗,点击是,则日志被删除。从文件中读取备忘录的容,用数据库进行存储和删除操作。 三设计与实现(需要附全部代码,GUI自动生成代码除外): 1 类的设计(继承、多态、数据结构):核心类是Month,Year,NotePad,Clock,DBAccess,CalendarPad.(其中继承用粗体,接口用粗斜体,数据结构是哈希表,用粗下划线,多态用斜体+点点短线式下划线) 2 Java IO (文件访问):用的是粗体+浪线 3 JDBC (数据库访问):使用Oracle数据库连接,是直连(双下划线) 数据库是:create table mynotes( mydate varchar2(50) primary key, note varchar2(100) not null ); 4 Socket + Multi-Thread:斜体(定义在Clock中的Thread t) 5 GUI (用户界面):点下划线来表示GUI用户界面 6 其他功能:(无) 以下是全部代码(共六个.J a v a文件) //对月份的选择 package javaapplication13; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Month extends Box implements ActionListener//ActionListener接口{ int month; JTextField showMonth=null; JButton RMonth,NMonth; CalendarPad cal; public Month(CalendarPad c) { super(BoxLayout.X_AXIS); this.cal=c; showMonth=new JTextField(2); month=c.getMonth(); showMonth.setEditable(false); showMonth.setForeground(Color.blue); showMonth.setFont(new Font("TimesRomn",Font.BOLD,16)); NMonth=new JButton("下月"); RMonth=new JButton("上月");
万年历
编写一个万年历程序,能显示日历,查询任意日期。 日历初始化和显示。能根据系统日期进行初始化,并显示当前月份的月历,并突出显示当前日期。 日期查询,可以输入一个日期,然后查询并正确显示日期所在月份的月历,并突出显示查询日期,如果输入日期不正确给出提示。 #include java万年历思路 Java万年历思路 前言 万年历是一个常见的日历应用程序,它可以显示公历和农历日期、节气、节日等信息。在本文中,我们将介绍如何使用Java编写一个简单的万年历程序。 一、需求分析 在开始编写程序之前,我们需要确定我们的程序需要实现哪些功能。下面是我们的需求分析: 1. 显示当前日期和时间 2. 显示公历和农历日期 3. 显示当天节气和节日 4. 支持查看任意日期的公历和农历信息 二、算法设计 为了实现上述功能,我们需要使用一些算法来计算日期信息。下面是我们将要使用的算法: 1. 计算某一年是否是闰年 2. 计算某一月有多少天 3. 计算某一天是星期几 4. 计算某一天对应的农历日期 5. 计算某一天对应的节气和节日 三、界面设计 为了让用户能够方便地使用我们的程序,我们需要设计一个简单易用的界面。下面是我们将要使用的界面元素: 1. 标题栏:显示程序名称和当前日期时间 2. 日历区域:显示公历和农历日期以及当天节气和节日 3. 左右箭头按钮:用于切换日期 4. 日期选择框:用于选择任意日期 四、代码实现 在进行代码实现之前,我们需要先导入一些Java类库来帮助我们完成任务。下面是我们需要使用的Java类库: 1. java.util.Calendar:用于处理日期和时间 2. java.util.GregorianCalendar:Calendar的子类,用于处理公历日期 3. java.text.SimpleDateFormat:用于格式化日期和时间 4. java.util.TimeZone:用于设置时区 5. java.util.HashMap:用于存储节气和节日信息 下面是我们的代码实现: 1. 计算某一年是否是闰年 public static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } 2. 计算某一月有多少天 public static int getDaysOfMonth(int year, int month) { if (month == 2) { return isLeapYear(year) ? 29 : 28; } else if (month == 4 || month == 6 || month == 9 || month calendar用法java (实用版) 目录 1.Java 中 Calendar 类的概念与用途 2.Calendar 类的主要方法 3.Calendar 类的实例用法 4.Calendar 类的使用示例 正文 【1.Java 中 Calendar 类的概念与用途】 在 Java 编程语言中,Calendar 类是用于处理日期和时间的一个重要类。Calendar 类提供了一种抽象的日期和时间表示方式,以及与之相关的操作,如获取指定日期和时间的特定部分、设置日期和时间的特定部分、获取两个日期和时间之间的间隔等。Calendar 类主要应用于需要进行日期和时间处理的程序设计中,例如日历、提醒、计时等。 【2.Calendar 类的主要方法】 Calendar 类提供了许多方法来处理日期和时间,主要包括以下几类: 1.获取日期和时间的特定部分:例如 get() 方法可以获取年、月、日、时、分、秒等。 2.设置日期和时间的特定部分:例如 set() 方法可以设置年、月、日、时、分、秒等。 3.获取两个日期和时间之间的间隔:例如 getTimeInMillis() 方法可以获取两个日期和时间之间的毫秒数。 4.比较两个日期和时间的大小:例如 compareTo() 方法可以比较两个日期和时间的大小。 【3.Calendar 类的实例用法】 Calendar 类的实例用法主要包括以下步骤: 1.创建一个 Calendar 对象:通过调用 Calendar 类的构造方法创建一个新的 Calendar 对象。 2.设置日期和时间的特定部分:通过调用 Calendar 对象的 set() 方法设置日期和时间的特定部分。 3.获取日期和时间的特定部分:通过调用 Calendar 对象的 get() 方法获取日期和时间的特定部分。 4.计算两个日期和时间之间的间隔:通过调用 Calendar 对象的getTimeInMillis() 方法计算两个日期和时间之间的毫秒数。 5.比较两个日期和时间的大小:通过调用 Calendar 对象的compareTo() 方法比较两个日期和时间的大小。 【4.Calendar 类的使用示例】 下面是一个使用 Calendar 类的简单示例,用于打印当前日期和时间:```java import java.util.Calendar; import java.util.Date; public class CalendarExample { public static void main(String[] args) { // 创建一个 Calendar 对象 Calendar calendar = Calendar.getInstance(); // 获取当前日期和时间 使用Java创建简单的日历应用程序-一个实战教程 日历应用程序是一个有用的工具,它允许用户记录和管理事件、约会和提醒。在这个实战博客中,我们将创建一个Java日历应用程序,演示如何使用Java编程语言和图形用户界面(GUI)库来实现事件管理和日期选择功能。 以下是本实战博客的主要内容: 项目概述 准备工作 创建Java项目 设计GUI界面 实现日历视图 添加事件管理功能 总结 让我们开始吧! 1. 项目概述 在本项目中,我们将创建一个简单的Java日历应用程序,它包括以下主要功能: 显示日历界面,允许用户选择日期。 在日历中标记已经安排的事件和约会。 允许用户添加、编辑和删除事件。 提供事件的日期和时间提醒功能。 我们将使用Java编程语言和Swing GUI库来构建这个日历应用程序。 2. 准备工作 在开始之前,确保您的开发环境已设置好。我们将使用Java编程语言和Swing库来构建日历应用程序,不需要额外的工具或库。 3. 创建Java项目 首先,创建一个新的Java项目,您可以使用任何Java集成开发环境(IDE)来完成此操作。在项目中,我们将创建Java类来实现日历应用程序。 4. 设计GUI界面 我们将创建一个简单的Swing GUI界面,用于显示日历界面和事件列表。创建一个Java类,例如CalendarApp,并在其中创建GUI界面。 java Copy code import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Calendar; import java.util.Date; public class CalendarApp { private JFrame frame; private JPanel calendarPanel; private JPanel eventPanel; private JTextArea eventList; private JButton addButton; private JButton editButton; private JButton deleteButton; public CalendarApp() { frame = new JFrame("日历应用程序"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.setLayout(new BorderLayout()); calendarPanel = new JPanel(new BorderLayout()); eventPanel = new JPanel(new BorderLayout()); eventList = new JTextArea(); eventList.setEditable(false); JScrollPane eventScrollPane = new JScrollPane(eventList); addButton = new JButton("添加事件"); editButton = new JButton("编辑事件"); deleteButton = new JButton("删除事件"); eventPanel.add(eventScrollPane, BorderLayout.CENTER); eventPanel.add(addButton, BorderLayout.NORTH); eventPanel.add(editButton, BorderLayout.WEST); eventPanel.add(deleteButton, BorderLayout.EAST); frame.add(calendarPanel, BorderLayout.WEST); frame.add(eventPanel, BorderLayout.CENTER); addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { 程序设计报告JAVA设计报告2:万年历 姓名:王颖 学号:001 学习中心:XX富县学习中心 专业:计算机科学与技术层次:专升本 XX号:3 联系: 万年历程序设计 一、设计分析 万年历有很多作用,顾名思义它是一种很方便得计时计年工具,随着科技得开展,我们已经可以通过计算机制作出精巧的万年历,通过计算机制作得万年历不但外观美观,而且功能强大。 通过万年历,我们可以实现很多功能,随意看某年得年份,某年得月份,随意调整某年得某天,并将其显示出来,而且有判断闰年闰月得功能,十分方便。 二、程序流程框图 主程序流程图 三、具体设计 1、变量设计 表2变量表 成员变量描述变量类型名称 年、月、日int Year、month、day 下一年,下一 Int Yearafterquery,monthafterquey 月 2、程序源代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; import java.util.Calendar; import java.util.*; import java.io.*; import java.io.IOException; public class calendar extends JFrame implements ActionListener,MouseListener { int year,month,day; int yearafterquery,monthafterquery; int startday; String SwitchMonth; String key; int changeyearmessage; int changemonthmessage; int priormonth; int prioryear; boolean ischange=false; boolean ischange_priornext=false; private JPanel LeftPane,RightPane; //Left sub private JLabel YearLabel; private JLabel MonthLabel; private oBox Monthbobox; (此文档为word格式,下载后您可任意编辑修改!) ******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年秋季学期 Java 课程设计 题目:万年历的设计 成绩: 目录 摘要 (2) 序言 (3) 正文 (4) 一、系统分析与设计 (4) 二、详细设计 (5) 2.1 类Calendars (5) 2.2 类Time (5) 2.3 类CalTabel (5) 三、系统测试 (6) 四、软件使用说明书 (9) 设计总结 (10) 参考文献 (11) 致谢 (12) 附录1(源代码) (13) 摘要 根据万年历的需要,设计一个万年历的程序,实现在此万年历表中有关日期和时间的基本操作:显示当时系统的日期和时间;显示当日的年和月;通过查询显示指定年、月的日历;设置北京时间,以显示北京和格林威治的时间并以设定的时间开始计时。设置时间和查询日历通过设计的窗体执行和显示。 关键词:万年历;图形界面;java技术 序言 1996年Java第一次发布就引起了人们的极大兴趣。关注Java的人士不仅限于计算机出版界,还有诸如《纽约时报》、《华盛顿邮报》、《商业周刊》这样的主流媒体。Java时第一种也是唯一一种在National Public Radio上占用了十分钟时间进行介绍的程序设计语言,并且还得到了$100 000 000的风险投资基金。这些基金全部用来支持这种特别的计算机语言开发的产品。 Java语言在Internet舞台上以及亮相便名声大噪,其原因在于它将有望成为连接用户与信息的万能胶,而不论这些信息来源于Web服务器、数据库、信息提供商,还是任何其他渠道,Java固有的可靠性与安全性不仅令Java程序员放心,也令使用Java程序的用户放心。 而此次将用Java设计一个万年历表,我们更加了解Java面向对象的程序设计语言。 正文 一、系统分析与设计 1、系统的要求 (1)定义一个时间类Time,能提供时、分、秒组成的时间,并提供时间增加的方法(按秒); (2)定义一个日期类Date,记录年、月、日,并提供日期增加的方法(按天); Java中的日期时间类是很常用的类,它包含了丰富的日期时间操作方法。在使用时,我们可以通过构造方法来创建日期时间对象,并对其进行操作。本文主要介绍Java日期时间类的构造方法,并结合实际案例,帮助读者更好地理解和运用这些构造方法。 一、java.util.Date类的构造方法 java.util.Date类是Java中表示日期时间的类,它包含了多个构造方法,用于创建Date对象。以下列举了其中的几个常用构造方法: 1. 无参构造方法 Date date = new Date(); 使用当前系统时间创建Date对象。 2. 以毫秒数为参数的构造方法 Date date = new Date(long millis); 使用从1970年1月1日00:00:00到指定毫秒数的时间创建Date 对象。 3. 以年、月、日、时、分、秒为参数的构造方法 Date date = new Date(int year, int month, int date); 使用指定的年、月、日创建Date对象。 二、java.util.Calendar类的构造方法 java.util.Calendar类是Java中代表日历的抽象类,它同样包含了多个构造方法,用于创建Calendar对象。以下列举了其中的几个常用构造方法: 1. 使用默认时区和默认区域设置创建Calendar对象 Calendar calendar = Calendar.getInstance(); 使用默认时区和默认区域设置创建Calendar对象。 2. 使用指定时区和区域设置创建Calendar对象 Calendar calendar = Calendar.getInstance(TimeZone zone, Locale aLocale); 使用指定时区和区域设置创建Calendar对象。 3. 使用年、月、日、时、分、秒为参数创建Calendar对象 Calendar calendar = new GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second); 使用指定的年、月、日、时、分、秒创建Calendar对象。 三、java.time包中的日期时间类构造方法 Java 8引入了java.time包,提供了一组全新的日期时间类,其中包 单片机万年历程序代码 以下是一个示例单片机万年历的程序代码: ```c #include if(K1==0) return 1; while(!K1); } if(K2==0) { delay(5); if(K2==0) return 2; while(!K2); } if(K3==0) { delay(5); if(K3==0) return 3; while(!K3); } return 0; } void display(uchar num) { P0 = num; delay(1); P0 = 0x00; } void init() { TMOD=0x01; TH0=0xFC; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; import java.util.TimeZone; public class wannianli extends JFrame implements ActionListener, MouseListener { private Calendar cld = Calendar.getInstance();//获取一个Calendar类的实例对象 private String[] astr = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" }; private DefaultTableModel dtm = new DefaultTableModel(null, astr); private JTable table = new JTable(dtm); private JScrollPane sp = new JScrollPane(table); private JButton bLastYear = new JButton("上一年"); private JButton bNextYear = new JButton("下一年"); private JButton bLastMonth = new JButton("上月"); private JButton bNextMonth = new JButton("下月"); private JPanel p1 = new JPanel(); // 设立八个中间容器,装入布局控制日期的按钮模块 private JPanel p2 = new JPanel(new GridLayout(3,2));//网格布局 private JPanel p3 = new JPanel(new BorderLayout());//边界布局 private JPanel p4 = new JPanel(new GridLayout(2,1)); private JPanel p5 = new JPanel(new BorderLayout()); private JPanel p6 = new JPanel(new GridLayout(2,2)); private JPanel p7 = new JPanel(new GridLayout(2,1)); private JPanel p8 = new JPanel(new BorderLayout()); private JComboBox timeBox = new JComboBox(TimeZone.getAvailableIDs());//对所有支持时区进行迭代,获取所有的id; private JTextField jtfYear = new JTextField(5);// jtfYeaar年份显示输入框 private JTextField jtfMonth = new JTextField(2);// jtfMouth月份显示输入框 private JTextField timeField=new JTextField();//各城市时间显示框 private static JTextArea jta = new JTextArea(10,5);//农历显示区 private JScrollPane jsp = new JScrollPane(jta); private JLabel l = new JLabel("花江小精灵:亲!你可以直接输入年月查询."); private JLabel lt = new JLabel(); 目录 目录 设计总说明 ............................................................................................................................ I 1需求分析 . (2) 1.1需求分析 (2) 1.2功能设计 (2) 2.概要设计 (2) 2.1程序设计思路 (2) 2.2程序运行界面 (3) 2.3流程图 (3) 3.各模块的功能及程序说明 (4) 3.1.初始化组件 (4) 3.2.初始化数据 (4) 3.3.绘制程序界面 (5) 4.测试及功能分析 (7) 5.课程设计体会 (18) 参考文献 (20) 设计总说明 设计总说明 近年来,人们的生活步骤越来越快,很多人都对每天做了详细的工作安排。也由于每天的工作、事情很多,故如备忘录,个人日志等出现了。本课程设计做得是个人日记系统,这是一个简小的系统,功能却很齐全,实际生活中也很实用。在手机里已经普遍带有这个系统。人们当备忘录,计划提醒,还可以当日记本使用等等。 个人日记系统使用的是java语言编写的,主要功能:1、实现一个带日历显示功能的个人日志;2、可自由设置时间,包括年份、月份;3、有文本输入区,可输入、保存个人日志资料。涉及到的知识模块有界面布局管理,GUI组件的使用,日历显示,文本创建、保存、修改、读取等。 为什么要选择Java 1.免费 Sun免费提供用来开发Java应用程序的一切,你不必付任何的版税。或许你会将信将疑:资本家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。对此,Sun董事长、总裁兼首席执行官Scott McNealy是这样解释的:“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是把Java应用到了业务中。” 2.跨平台 “一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux 的持续增长以及Mac OSX完全支持Java技术,跨平台的特性变得越来越有分量。 3.简单 与C++等语言相比较,语法上Java是简单的。 Java提供了垃圾回收机制。以往C++的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存资源越来越少,直至耗尽系统资源而造成死机。而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。这个神奇的机制叫做“垃圾回收”,节约了许多调试错误的时间。 另一方面就是异常捕捉机制,它强迫你做最坏的打算。编写程序时,难免会遇到一些意外,比如文件无法打开、网络读取失败等特殊情况。在C++等语言中是依靠返回值来判断的,如果一句句地检查返回值,那实在是太麻烦了。从而,程序员习惯性地忽略返回值的检查,并安慰自己一切都会好起来的。这便埋下了隐患。在Java中,Java的方法可以抛异常,而你必须应答异常,即使你不想进行任何操作。比如编写打开文件的代码,你不得不响应异常以防意外发生,否则程序根本不能够通过编译。未雨绸缪,使得Java系统更稳健。 Java课程实验报告 姓名:*** 学号:********** 作业要求: 编写一个万年历程序,要求能够查询历史时间,能够添加、查看、删除备忘录。 项目概述: 这个项目是一个简单的Java万年历,可以实现所有年份的公历日期的查询,并且在相应的日期做备忘录,以及可以显示当前的日期以及时间。 程序截图: 具体功能介绍: (1)万年历查询:点击图形界面中年份钱下拉框用来调整要查询的年份,点击月份前来调整要查询的月份,然后可以看到这个月的每一天所对应的星期。(2)Clock功能:在万年历下面显示当前的年月日时间,相当于一个时钟的功能。 (3)记事本功能。 设计与实现(需要附全部代码,GUI自动生成代码除外): 1 类的设计(继承、多态、数据结构):核心类是CalendarWindow. findPassWordDialog等。 2 Java IO ;文件访问 2 GUI (用户界面):点下划线来表示GUI用户界面 6 其他功能:(无) 程序代码: package app; import calendar.CalendarWindow; public class Client { public static void main(String[] args) { new CalendarWindow().setVisible(true); } } 第一个包 package account; public class Account { private String name; private String passWord; public Account(String name, String passWord) { https://www.360docs.net/doc/4719200991.html, = name; this.passWord = passWord; } public String getName() { return name; } public void setName(String name) { https://www.360docs.net/doc/4719200991.html, = name; } public String getPassWord() { return passWord; } public void setPassWord(String passWord)java万年历思路
calendar用法java
使用Java创建简单的日历应用程序
java程序设计报告万年历
万年历课程设计说明书
java datetime 构造方法
单片机万年历程序代码
Java万年历源代码,可显示公历、农历、系统时间、国际时间
个人日志系统
Java万年历实验报告