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 #include #include #include"万年历.h" int main() { int y,m,d,h,min,sec;//系统时间参数 int cho;//用户选项 int yt,mt,dt;//拥护输入的时间参数 while(1) { cout<<"≡≡≡≡≡≡万年历菜单选项≡≡≡≡≡"; cout<<"请按编号选择功能"; cout<<" ⑴查询当前时间"; cout<<" ⑵显示本月月历"; cout<<" ⑶查找给定日期对应的月历"; cout<<" ⑷退出万年历"; cin>>cho; Initdate(y,m,d,h,min,sec); switch(cho){ case 1: cout<<"当前时间为<>yt<

java万年历思路

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

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日历应用程序,演示如何使用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程序设计报告万年历

程序设计报告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 datetime 构造方法

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 typedef unsigned char uchar; typedef unsigned int uint; sbit K1 = P2^0; // 显示年份 sbit K2 = P2^1; // 显示月份 sbit K3 = P2^2; // 显示日期 uchar code year_tab[] = {31,28,31,30,31,30,31,31,30,31,30,31}; uchar code week_tab[] = {0x06,0x07,0x01,0x02,0x03,0x04,0x05}; uchar year, month, day, week; void delay(uint ms) { uint i, j; for(i=ms;i>0;i--) for(j=110;j>0;j--); } uchar getKey() { if(K1==0) { delay(5);

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;

Java万年历源代码,可显示公历、农历、系统时间、国际时间

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课程实验报告 姓名:*** 学号:**********

作业要求: 编写一个万年历程序,要求能够查询历史时间,能够添加、查看、删除备忘录。 项目概述: 这个项目是一个简单的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)

相关文档
最新文档