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的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()获得当前时间的毫秒表示abstract void add(int field, int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量。
boolean after(Object when)判断此Calendar 表示的时间是否在指定Object 表示的时间之后,返回判断结果。
boolean before(Object when)判断此Calendar 表示的时间是否在指定Object 表示的时间之前,返回判断结果。
void clear()将此Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。
void clear(int field)将此Calendar 的给定日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。
Object clone()创建并返回此对象的一个副本。
int compareTo(Calendar anotherCalendar)比较两个Calendar 对象表示的时间值(从历元至现在的毫秒偏移量)。
Java中的日期和时间类以及Calendar类用法详解

Java中的⽇期和时间类以及Calendar类⽤法详解Java⽇期和时间类简介Java 的⽇期和时间类位于 java.util 包中。
利⽤⽇期时间类提供的⽅法,可以获取当前的⽇期和时间,创建⽇期和时间参数,计算和⽐较时间。
Date 类Date 类是 Java 中的⽇期时间类,其构造⽅法⽐较多,下⾯是常⽤的两个:Date():使⽤当前的⽇期和时间初始化⼀个对象。
Date(long millisec):从1970年01⽉01⽇00时(格林威治时间)开始以毫秒计算时间,计算 millisec 毫秒。
如果运⾏ Java 程序的本地时区是北京时区(与格林威治时间相差 8 ⼩时),Date dt1=new Date(1000);,那么对象 dt1 就是1970年01⽉01⽇08时00分01秒。
请看⼀个显⽰⽇期时间的例⼦:import java.util.Date;public class Demo{public static void main(String args[]){Date da=new Date(); //创建时间对象System.out.println(da); //显⽰时间和⽇期long msec=da.getTime();System.out.println("从1970年1⽉1⽇0时到现在共有:" + msec + "毫秒");}}运⾏结果:Mon Feb 05 22:50:05 CST 2007从1970年1⽉1⽇0时到现在共有:1170687005390 毫秒⼀些⽐较常⽤的 Date 类⽅法:Date 对象表⽰时间的默认顺序是星期、⽉、⽇、⼩时、分、秒、年。
若需要修改时间显⽰的格式可以使⽤“SimpleDateFormat(String pattern)”⽅法。
例如,⽤不同的格式输出时间:import java.util.Date;import java.text.SimpleDateFormat;public class Demo{public static void main(String args[]){Date da=new Date();System.out.println(da);SimpleDateFormat ma1=new SimpleDateFormat("yyyy 年 MM ⽉ dd ⽇ E 北京时间");System.out.println(ma1.format(da));SimpleDateFormat ma2=new SimpleDateFormat("北京时间:yyyy 年 MM ⽉ dd ⽇ HH 时 mm 分 ss 秒");System.out.println(ma2.format(-1000));}}运⾏结果:Sun Jan 04 17:31:36 CST 20152015 年 01 ⽉ 04 ⽇星期⽇北京时间北京时间:1970 年 01 ⽉ 01 ⽇ 07 时 59 分 59 秒Calendar 类抽象类 Calendar 提供了⼀组⽅法,允许把以毫秒为单位的时间转换成⼀些有⽤的时间组成部分。
java 制作日历

java 制作日历
本实例通过制作日历,来介绍Calendar类。
该类是一个抽象类,为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法。
操作步骤:
(1)导入util类包,该包提供了一些实用的方法和数据结构,如日期(Data)类、日历(Calendar)类来产生和获取日期及时间等。
然后,创建CalendarTest类和主方法。
世界上大多数国家/地区使用的标准日历系统。
而get(Calendar.DAY_OF_MONTH) 获取当月中天数的最小值。
get(Calendar.DA Y_OF_WEEK) 用于获取当前日期在星期中的第几天从1-7(对应从星期日~星期
(3)通过do while循环语句,打开当月的日历,并对当天做一个星号“*”标记。
然后,通过“if (weekday == Calendar.SATURDAY)”语句判断是否为星期六,
(4)执行代码,获取当前的月份、日期和星期等内容,然后通过循环语句打印出当前月份的日历,如图6-2所示。
图6-2 打印月份。
JavaSwing日历控件

Java swing日历控件,界面精美,使用方便,能用于个人作品首先,声明一点,这个控件是我从一套据说价值九百多美元的swing类包中提取出来,并加以修改的,所以:
一,你不能把该控件用于任何商业产品中。
二,该控件没有源代码。
(DatePicker.java除外,这个是我加进去的)
三,该控件可以用于你的个人作品中。
截图如下:
使用之前请把datepicker.jar导入classpath中
使用方法如下:
DatePicker datepick = new DatePicker();
或者
datepick = new DatePicker(date,DefaultFormat,font,dimension);//自定义参数值
//各参数含义如下
//参数1 设置该控件的初始值(可选)
//参数2 设置日期的格式(可选)
//参数3 设置该控件的字体(可选)
//参数3 设置该控件的大小(可选)
//该控件继承自JComponent ,它继承了Jcomponent的属性
datepick.setTimePanleVisible(true);//设置时钟面板可见
atepick.setHightlightdays(hilightDays, Color.red);//设置一个月份中需要高亮显示的日子
datepick.setDisableddays(disabledDays);//设置一个月份中不需要的日子,呈灰色显示。
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日历小程序

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

课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
java日历课程设计报告

软件学院课程设计报告书课程名称面向对象课程设计设计题目专业班级学号姓名指导教师年 1 月int selYear1=Integer.parseInt(calLis.Year.getSelectedItem());int selYear = selYear1- 1900;Date d1 = new Date(selYear,selMonth,1);int day = d1.getDay();calLis.setVal(d1,day,selMonth,selYear);}}class myAction implements ActionListener{CalenderCreator calAc;int newyear;public myAction(CalenderCreator ca{calAc=ca;}//为“关闭”按钮添加监听事件,当“关闭”按钮被点击时就执行这里的部分public void actionPerformed(ActionEvent e){String s=calAc.textfield.getText();// newyear=Integer.parseInt(s);System.out.println("Year upto::::::::"+s);calAc.setYear(s);TextField tf = (TextField)e.getSource();tf.removeActionListener(this);}}4.3用图片辅助认识程序的具体操作和执行图4-1:月份和年份的效果图图4-2:星期的效果图图4-3:日期的效果图图4-4:日历整体效果图4.4附注完整程序设计import java.awt.*;import java.awt.event.*;import java.util.*;public class CalenderCreator extends Frame{Button days[]=new Button[49];Choice Month=new Choice();Choice Year=new Choice();Label lmonth=new Label("MONTH");Label lyear=new Label("Year");Label ltext=new Label("YEAR UPTO");Panel p1,p2;GregorianCalendar gc=new GregorianCalendar();int totdays;TextField textfield=new TextField(2);public CalenderCreator(){setTitle("日历");setSize(400,400);。
java编程日历代码

}
/**
* 格式化货币,将小写转成中文大些
* @param money
* @return
*/
public static String getCapMoney(String money) {
if(decimals[0]=='0'){
if(decimals[1]=='0'){
resule = resule + "整";
}else{
resule = resule + "零" +
Chinamemoney(Integer.parseInt(String.valueOf(decimals[1]))) +
/**
* 格式化成货币类型,即四舍五入保留小数点两位,没有就补零
* @param money
* @return
*/
public static String formatcurrency(String money){
try {
if (money == null || "".equals(money)) {
}
//取得当前时间
public static String getDateTime() {
Date d = new Date();
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
resule = Chinamemoneyunit(j,
使用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界面。
javaCopy codeimport 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() {@Overridepublic void actionPerformed(ActionEvent e) {addEvent();}});editButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {editEvent();}});deleteButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {deleteEvent();}});frame.setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(() -> new CalendarApp());}private void addEvent() {// 实现添加事件的代码,略...}private void editEvent() {// 实现编辑事件的代码,略...}private void deleteEvent() {// 实现删除事件的代码,略...}}在上述代码中,我们创建了一个CalendarApp类,包括一个Swing窗口、日历界面和事件列表。
蔡勒公式写的Java日历

/*w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。
(C是世纪数减一,y是年份后两位,M是月份,d是日数w为负数时,w要先+7,再取余。
*///程序功能:可以算出1783年后的日历,并选择是否继续查阅日历import java.util.*;publicclass calendar{@SuppressWarnings("resource")publicstaticvoid main(String[] args){String answer="0";do{ //do循环,确认是否要继续查询日历Scanner in=new Scanner(System.in);System.out.println("请输入年份");int year=in.nextInt();System.out.println("请输入月份");int m=in.nextInt();System.out.println("日\t一\t二\t三\t四\t五\t六");int w,y,c,j=0,d; //j是天数,确认一个月是30天还是31天等等if(m==4||m==6||m==9||m==11){j=30;}else{if(m==2){ //判断2月有几天if(year%4==0&&year%100!=0||year%400==0){j=29;}elsej=28;}else{j=31;}}if(m==1||m==2){ //1 2 月按上一年的13 14月算year-=1;}y=year%100;c=year/100;switch(m){case 1:m=13;break;case 2:m=14;break;}for(d=1;d<=j;d++){ //主体功能w=((y+y/4+c/4-2*c+26*(m+1)/10+d-1)%7+7)%7;if(d==1){for(int i=0;i<w;i++){System.out.print("\t");}System.out.print(d+"\t");if(w==6){System.out.print("\n");}}else{System.out.print(d+"\t");if(w==6){System.out.print("\n");}}}System.out.print("\n");System.out.println("是否要继续查询日历:是/Y 否/N");answer=in.next();}while(answer.equals("Y"));//只有选择Y才继续,否则结束程序}}。
Java开发日历记事本

E m i xj cc e. — a : s@cc. t n l l n c
h t :ww d z .e .n t / w.n sn t p/ o
Te h+8 55l 56 96 56 09 4 6— 一 90 3 9 6
C m ue K o  ̄d ea d T c n l y电脑 知识 与技术 o p tr n we g n e h o g o
号 码 排 列算 法 : 方 法包 含 两 个 整 形 参 数 , 该 分别 是 星期 几 和 月 天数 。该 方法 的作 用是 将 日期 一 次 排 列 人 日历 牌 的 网格 中 , 日期
2算 法描述
主 类 的算 法 :a n aP d类 首先 创 建 用 于 布 局 的 面 板 , 面 添 加 日历 牌 , 面 添加 记事 本 。然后 调 用 C ln aPd方 法 , 方 法 C l dra e 左 右 a d ra e 该
有 三 个 分 别 是 y a, n , a e r mo t d y的整 形 参 数 。该 方 法 管 理 日历 记 事 本 的 主 界 面 。在 E历 牌 部 分 使 用 网格 布 局 , h t 行数 和列 数 均 为 7 。其 中第 一 行 显示 星期 标 题 的标 签 . 续 六 行 显 示 日期 的标 签 。 后
g g .Thebai unc on fCae d rh v r w s a a em odfe . ua e s f t so l n a a e b o e nd d t c i i d The i bai unci so N o e a v np , a ,d lt ,ve . scf ton .f t p d ha e i ut sve ee e iw
JAVA常用API:日历类Calendar

JAVA常⽤API:⽇历类CalendarCalendar⽇历类在Date后出现,替换了很多Date类的⽅法。
该类将所有可能⽤到的时间信息封装为静态成员变量,⽅便获取。
Calendar为抽象类,由于语⾔的敏感性,Calendar类在创建对象时并⾮直接通过⼦类创建,⽽是通过静态⽅法创建,将语⾔敏感内容处理好,再返回⼦类对象Calendar ca = Calendar.getInstance();⼀、Calendar类的常⽤⽅法get(int field);返回intCalendar ca = Calendar.getInstance();获取年int year = ca.get(Calendar.YEAR); //类名直接调⽤静态属性获取⽉int month = ca.get(Calendar.MONTH);获取⽇int day = ca.get(Calendar.DAY_OF_MONTH);/*字段:年:YEAR⽉:MONTH ⽉从0开始,0-11,故得到⽉应+1⽇:DAY_OF_MONTH,天:DATE(与DAY_OF_MONTH同)时:HOUR分:MINUTE秒:SECOND*/2. add⽅法,对指定字段增加某值. add(Calendar.属性名,int 增加的量)Calendar ca = Calendar.getInstance();//把对象ca内的时间修改为3天后ca.add(Calendar.DATE,3);//修改对象ca内的时间为5⼩时后ca.add(Calendar.HOUR,5);2. set⽅法,对指定字段进⾏设置, set(Calendar.属性名,int 设置的值);Calendar ca = Calendar.getInstance();设置时间为2018年8⽉8⽇ca.set(Calendar.YEAR,2018);ca.set(Calendar.MONTH,7);ca.set(Calendar.DATE,8);⼀次性设置三个ca.set(2018,7,8);3. getTime(); 返回⼀个Date对象Calendar ca = Calendar.getInstance();Date date = ca.getTime();。
java日历之GUI界面化

public void mouseClicked(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public static void main(String args[]) { Calendar calendar=Calendar.getInstance(); int y=calendar.get(Calendar.YEAR); int m=calendar.get(Calendar.MONTH)+1; int d=calendar.get(Calendar.DAY_OF_MONTH); new CalendarPad(y,m,d); } }
} for(int i=0;i<星期几;i++) { showDay[i].setText(""); } for(int i=星期几+月天数;i<42;i++) { showDay[i].setText(""); }
} if(i%7==0) { showDay[i].setForeground(Color.red); } n++;
} public void 排列号码(int 星期几,int 月天数) { for(int i=星期几,n=1;i<星期几+月天数;i++) { showDay[i].setText(""+n); if(n==day) { showDay[i].setForeground(Color.green); showDay[i].setFont(new Font("TimesRoman",Font.BOLD,20)); } else { showDay[i].setFont(new Font("TimesRoman",Font.BOLD,12)); showDay[i].setForeground(Color.black); } if(i%7==6) { showDay[i].setForeground(Color.blue);
Java中的Calendar日历API用法完全解析

Java中的Calendar⽇历API⽤法完全解析第⼀部分 Calendar介绍Calendar 定义:public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {}Calendar 可以看作是⼀个抽象类。
它的实现,采⽤了设计模式中的⼯⼚⽅法。
表现在:当我们获取Calendar实例时,Calendar会根据传⼊的参数来返回相应的Calendar对象。
获取Calendar实例,有以下两种⽅式:(1) 当我们通过 Calendar.getInstance() 获取⽇历时,默认的是返回的⼀个GregorianCalendar对象。
GregorianCalendar是Calendar的⼀个实现类,它提供了世界上⼤多数国家/地区使⽤的标准⽇历系统。
(2) 当我们通过 Calendar.getInstance(TimeZone timezone, Locale locale) 或 Calendar.getInstance(TimeZone timezone) 或Calendar.getInstance(Locale locale)获取⽇历时,是返回“对应时区(zone) 或地区(local)等所使⽤的⽇历”。
例如,若是⽇本,则返回JapaneseImperialCalendar对象。
参考如下代码:public static Calendar getInstance(){// 调⽤createCalendar()创建⽇历Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());cal.sharedZone = true;return cal;}public static Calendar getInstance(TimeZone zone){// 调⽤createCalendar()创建⽇历return createCalendar(zone, Locale.getDefault());}public static Calendar getInstance(Locale aLocale) {// 调⽤createCalendar()创建⽇历Calendar cal = createCalendar(TimeZone.getDefaultRef(), aLocale);cal.sharedZone = true;return cal;}public static Calendar getInstance(TimeZone zone,Locale aLocale){// 调⽤createCalendar()创建⽇历return createCalendar(zone, aLocale);}private static Calendar createCalendar(TimeZone zone,Locale aLocale){// (01) 若地区是“th”,则返回BuddhistCalendar对象// (02) 若地区是“JP”,则返回JapaneseImperialCalendar对象if ("th".equals(aLocale.getLanguage())&& ("TH".equals(aLocale.getCountry()))) {return new sun.util.BuddhistCalendar(zone, aLocale);} else if ("JP".equals(aLocale.getVariant())&& "JP".equals(aLocale.getCountry())&& "ja".equals(aLocale.getLanguage())) {return new JapaneseImperialCalendar(zone, aLocale);}// (03) 否则,返回GregorianCalendar对象return new GregorianCalendar(zone, aLocale);}当我们获取Calendar实例之后,就可以通过Calendar提供的⼀些列⽅法来操作⽇历。
java中关于日期类Calendar的简单使用

java中关于⽇期类Calendar的简单使⽤根据年⽉获取⽉份第⼀天public static String getSDateOfMonth(String monthId) {String SDate;Calendar cal = Calendar.getInstance();int year = cal.get(Calendar.YEAR);int month = cal.get(Calendar.MONTH) + 1;int y = Integer.parseInt(monthId.substring(0, 4));int m = Integer.parseInt(monthId.substring(4, 6));if (y == year && m == month) {if (month < 10) {// ⽉份少于10SDate = "" + year + "-0" + month + "-01";} else {SDate = "" + year + month + "-01";}} else {// 不是当前⽉if (m < 10) {// ⽉份少于10SDate = "" + y + "-0" + m + "-01";} else {SDate = "" + y + m + "-01";}}return SDate;};根据年⽉获取⽉份最后⼀天public static String getLastDayOfMonth(String monthId) {int year = Integer.parseInt(monthId.substring(0, 4));int month = Integer.parseInt(monthId.substring(4, 6));Calendar cal = Calendar.getInstance();// 设置年份cal.set(Calendar.YEAR, year);// 设置⽉份cal.set(Calendar.MONTH, month - 1);// 获取某⽉最⼤天数int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);// 设置⽇历中⽉份的最⼤天数cal.set(Calendar.DAY_OF_MONTH, lastDay);// 格式化⽇期SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String lastDayOfMonth = sdf.format(cal.getTime());return lastDayOfMonth;};判断是否是当前年⽉public static boolean isCurrentMonth(String month) {Calendar cal = Calendar.getInstance();int currentYear = cal.get(Calendar.YEAR);int currentMonth = cal.get(Calendar.MONTH) + 1;int y = Integer.parseInt(month.substring(0, 4));int m = Integer.parseInt(month.substring(4, 6));if (y == currentYear && m == currentMonth) {return true;}else{return false;}};SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//获取前⽉的第⼀天Calendar cal_1=Calendar.getInstance();//获取当前⽇期cal_1.add(Calendar.MONTH, -1);cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前⽇期既为本⽉第⼀天firstDay = format.format(cal_1.getTime());System.out.println("-----1------firstDay:"+firstDay);//获取前⽉的最后⼀天Calendar cale = Calendar.getInstance();cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前⽇期既为本⽉第⼀天lastDay = format.format(cale.getTime());System.out.println("-----2------lastDay:"+lastDay);//获取当前⽉第⼀天:Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前⽇期既为本⽉第⼀天String first = format.format(c.getTime());System.out.println("===============first:"+first);//获取当前⽉最后⼀天Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = format.format(ca.getTime());System.out.println("===============last:"+last);。
JAVA万年历系统课程设计报告附源码

2013-2014学年第二学期《面向对象程序设计》课程设计报告题目:万年历系统专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:计算机与信息工程系2014年6月6日目录1设计内容及要求设计内容万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用。
在我设计的万年历中主要有:(1)使用图形用户界面来查询用用户所需的日期信息,符合日常软件使用规范。
(2)按月份查询,实现了显示查询1901~2100年某月所有日期的阴阳历对照。
(3)并且添加了重大节日与星座等信息,界面采用日常的星期与月份结合的格式,方便查看与使用。
(4)编写万年历的课程设计,是为了使同学们更加了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
设计任务及具体要求利用JAVA语言编写的万年历系统采用了多种JAVA语句来实现多种功能。
用户可以通过本程序的applet运行界面来查找一整年某月的农历和阳历,可以查找用户所想了解的某一天具体为星期几,并且可以看到一些重大节日的具体时间。
要求:满足设计万年历系统的目的,即当用户查询年份与月份时,系统就要将这一年的某一月份的阴历与阳历全部显示出来,并且附带这一月份的重大节日。
当用户随意改动年份或月份时系统自动显示与星期对应的日期。
用户点击日期时系统会显示具体星座信息。
2概要设计程序设计思路(1)总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。
然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
Java时间类-Calendar、Date、LocalDateLocalTime

Java时间类-Calendar、Date、LocalDateLocalTime1、Date 类 java.util.Date是⼀个“万能接⼝”,它包含⽇期、时间,还有毫秒数,如果你只想⽤java.util.Date存储⽇期,或者只存储时间,那么,只有你知道哪些部分的数据是有⽤的,哪些部分的数据是不能⽤的。
1.1 Date的构造⽅法 Date 是我们使⽤的最多的⼀个⽇期类,Date提供的构造⽅法在官⽅API中有⼀下⼏种: Date 类提供了多种构造⽅法,但是⽬前有很多⽅法都已经不建议使⽤public Date() {this(System.currentTimeMillis());}public Date(long date) {fastTime = date;}@Deprecatedpublic Date(int year, int month, int date) {this(year, month, date, 0, 0, 0);}@Deprecatedpublic Date(int year, int month, int date, int hrs, int min) {this(year, month, date, hrs, min, 0);}@Deprecatedpublic Date(int year, int month, int date, int hrs, int min, int sec)@Deprecatedpublic Date(String s) {this(parse(s));} ⽬前我们可以通过使⽤:Date date0 = new Date();Date date1 = new Date(time); 这两种⽅法创建对象的不同主要是通过指定的时间戳不同,通过设置Date 中的fastTime 进⾏设置Date 对象的时间。
除了使⽤构造⽅法获取实例,Date 还可以通过Instant来创建⼀个Date 实例:Instant instant = Instant.now();Date date = Date.from(instant); Instant 是Java 8 提供的新特性: 1.2 Date的常⽤⽅法 Date 类中,提供了常⽤的获取:年,⽉,⽇,时,分,秒等⽅法:Date date = new Date();int dates = date.getDate();int year = date.getYear();int month = date.getMonth();int day = date.getDay();int hours = date.getHours();int min = date.getMinutes();int second = date.getSeconds();long time = date.getTime();int times = date.getTimezoneOffset(); 输出结果:dates: 14year: 116month: 11day: 3hours: 15min: 8second: 29time: 1481699309422times: -480 读者可能会发现,这⾥的年份并不是我们想要的,这⾥主要是因为代码⽅法实现:我们可以看到,这⾥的getYear 并不是获取当前年份,⽽是获取到和1900年的差值,这⾥主要是因为JDK⽼版本遗留下来的问题,对于Date 中获取年⽉⽇的⽅法,现在已经不建议使⽤了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java程序设计课程设计报告设计题目:电子日历设计班级:学号:姓名:一、需求分析设计并实现一个电子日历,当用户在下拉列表中选择年份后,显示某年各个月的日历。
二、概要设计本程序要求实现在点击按钮以及在下拉菜单中进行点击选择时日历页面以及日期信息行能够正确显示当前选择的日期,所以在源程序中应该在点击按钮时产生ActionEvent事件,修改当前显示日期以及显示当月日历;在菜单中选择年份时能够产生ItemEvent事件,使得日历直接跳转到所选年份。
三、详细设计源程序分为三部分,主程序部分 CalendarMainClass,日历实现部分CalendarClass, 页面实现部分 CalendarFrame。
主程序CalendarMainClass声明并创建一个页面实现部分CalendarFrame类的对象,使用setBounds() 方法设置初始位置以及窗口大小;使用setTitle() 方法设置窗口标题;使用setLocationRelativeTo()方法设置窗口居中显示:使用setVisible()以及 setDefaultCloseOperation() 方法设置窗口可见和单击窗体右上角的关闭图标后程序会做出怎样的处理。
日历实现部分 CalendarClass首先创建一个长度为42的字符串数组,用来存放日期;其后判断所选月份的长短,并存入数组中。
页面实现部分 CalendarFrame窗口页面的布局设计如下:新建一个JPanel面板 panel,将其设置为BorderLayout布局,放置于窗口的NORTH区,将按钮上月previousMonth,按钮下月nextMonth 放置在JPanel的对象pNorth中,并将菜单组件list和pNorth分别放置在panel的NORTH区,SOUTH区;新建一个JPanel面板pCenter,将pCenter设置为7行7列的GridLayout布局,将星期组件和日期组件添加入pCenture中,把pCenture添加入一个ScrollPane的对象scrollPane当中,将scrollPane放置在窗口的CENTER区;将日期信息组件showMessage 添加入JPanel的对象pSouth中,并将pSouth放置在窗口的SOUTH区。
为按钮上月previousMonth,按钮下月nextMonth以及下拉菜单设置监视器,重写public void actionPerformed(ActionEvent e),public void itemStateChanged(ItemEvent e)方法,使得在进行相应操作时能够产生相应的时间。
页面实现部分 CalendarFrame 的图形化显示四、程序代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Calendar;public class CalendarMainClass{public static void main(String args[]){CalendarFrame frame =new CalendarFrame();frame.setBounds(0,0,800,550);frame.setTitle("Calendar");frame.setLocationRelativeTo(null);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class CalendarClass{String day[];int year=2010,month=0;public void setYear(int year){this.year=year;}public int getYear(){return year;}public void setMonth(int month){this.month=month;}public int getMonth(){return month;}public String[] getCalendar(){String a[]=new String[42];Calendar date=Calendar.getInstance();date.set(year,month-1,1);int week=date.get(Calendar.DAY_OF_WEEK)-1;int day=0;if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {day=31;}if(month==4||month==6||month==9||month==11){day=30;}if(month==2){if(((year%4==0)&&(year%100!=0))||(year%400==0)){day=29;}else{day=28;}}for(int i=week,n=1;i<week+day;i++){a[i]=String.valueOf(n) ;n++;}return a;}}class CalendarFrame extends JFrame implements ActionListener , ItemListener{JLabel labelDay[]=new JLabel[42];JComboBox list =new JComboBox();JButton titleName[]=new JButton[7];JButton button = new JButton();Stringname[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturd ay "};JButton nextMonth,previousMonth;int year=2010,month=1;CalendarClass calendar;JLabel showMessage=new JLabel("",JLabel.CENTER);public CalendarFrame(){list.addItem("2010");list.addItem("2011");list.addItem("2012");list.addItem("2013");list.addItem("2014");list.addItem("2015");list.addItem("2016");list.addItem("2017");list.addItemListener(this);JPanel pCenter=new JPanel();pCenter.setLayout(new GridLayout(7,7));for(int i=0;i<7;i++){titleName[i]=new JButton(name[i]);pCenter.add(titleName[i]);}for(int i=0;i<42;i++){labelDay[i]=new JLabel("",JLabel.CENTER);pCenter.add(labelDay[i]);}calendar=new CalendarClass();calendar.setYear(year);calendar.setMonth(month);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}nextMonth=new JButton("NextMonth");previousMonth=new JButton("PreviousMonth");nextMonth.addActionListener(this);previousMonth.addActionListener(this);JPanel panel=new JPanel();panel.setLayout(new BorderLayout());panel.add(list,BorderLayout.NORTH);JPanel pNorth=new JPanel(),pSouth=new JPanel();pNorth.add(previousMonth);pNorth.add(nextMonth);pSouth.add(showMessage);showMessage.setText("Calendar:"+calendar.getYear()+" year"+ calendar.getMonth()+" month" );ScrollPane scrollPane=new ScrollPane();scrollPane.add(pCenter);panel.add(pNorth,BorderLayout.SOUTH);add(scrollPane,BorderLayout.CENTER);add(panel,BorderLayout.NORTH);add(pSouth,BorderLayout.SOUTH);}public void actionPerformed(ActionEvent e){if(e.getSource()==nextMonth){month=month+1;if(month>12)month=1;calendar.setMonth(month);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}}else if(e.getSource()==previousMonth){month=month-1;if(month<1)month=12;calendar.setMonth(month);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}}showMessage.setText("Calendar:"+calendar.getYear()+" year"+calendar.getMonth()+" month" );}public void itemStateChanged(ItemEvent e){String item = e.getItem().toString();int x=Integer.parseInt(item);if(month>12)month=1;calendar.setYear(x);String day[]=calendar.getCalendar();for(int i=0;i<42;i++){labelDay[i].setText(day[i]);}showMessage.setText("Calendar:"+calendar.getYear()+" year"+calendar.getMonth()+" month" );}}五、运行结果六、设计总结本次课程设计强调的是知识的统一应用和全局思考能力的培养。