用JAVA(Myeclipse)实现可视化日历
2016-03-12 19:16
633 查看
日历的实现,主要用了Calender类获取信息,DateFormat,SimpleDateFormat类进行日期的格式调整,Scanner类控制输入,用两个“for”语句来实现核心的日历输出,第一个用来输出空白,第二个用来输出日期。在学习c语言的时候,打印输出一些图案,还有九九乘法表,也是用for语句循环,有时还进行for语句嵌套。
实现过程是,用户输入一个格式固定的日期,如1902-02-02,然后就会出现本月的日历,且输入的日期会特别标记,后期学习了spring等技术后,就可以把日历做的更加美观了。
实现效果:
![](http://img.blog.csdn.net/20160312183100388)
有几点需要特别说明一下
1.
直接获取了用户输入到控制台的一行内容,返回一个String类型
2.
这里运用了多态,父类引用指向子类对象,并且固定了日期的格式,这个格式是固定的,有多种固定格式,
“yyyy-MM-dd”只是其中一种,不可以随便乱改。
3.将String类型的文本转化为Date类型日期
4.将Date类型转换为String
5.Calendar类
public static final int DATE: get 和 set 的字段数字,指示一个月中的某天,一个月中第一天的值为 1
public int get(int field):返回给定日历字段的值
public void set(int field,int value):将给定的日历字段设置为给定值
public static final int DAY_OF_WEEK: get 和 set 的字段数字,指示一个星期中的某天。该字段可取的值为
SUNDAY(1)、MONDAY(2)、TUESDAY(3)以此类推,所以如果它返回5,实际是周四
public int getActualMaximum(int field): 返回指定日历字段可能拥有的最大值,也就是一个月有几天
public abstract void add(int field,int amount): 根据日历的规则,为给定的日历字段添加或减去指定的时间量
实现代码:
实现过程是,用户输入一个格式固定的日期,如1902-02-02,然后就会出现本月的日历,且输入的日期会特别标记,后期学习了spring等技术后,就可以把日历做的更加美观了。
实现效果:
有几点需要特别说明一下
1.
String str=s.nextLine();
直接获取了用户输入到控制台的一行内容,返回一个String类型
2.
DateFormat format=new SimpleDateFormat("yyyy-MM-dd");
这里运用了多态,父类引用指向子类对象,并且固定了日期的格式,这个格式是固定的,有多种固定格式,
“yyyy-MM-dd”只是其中一种,不可以随便乱改。
3.将String类型的文本转化为Date类型日期
String str="1902-03-02"; DateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Date date=format.parse(str);
4.将Date类型转换为String
Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str=sdf.format(d);
5.Calendar类
calendar.setTime(date);//使用给定的 Date 设置此 Calendar 的时间
int today=calendar.get(Calendar.DATE);//方便以后进行比较,做出特别标记
public static final int DATE: get 和 set 的字段数字,指示一个月中的某天,一个月中第一天的值为 1
public int get(int field):返回给定日历字段的值
calendar.set(Calendar.DATE, 1);//将DATE设置为1,即一个月中的第一天
public void set(int field,int value):将给定的日历字段设置为给定值
int mon=calendar.get(Calendar.DAY_OF_WEEK);
public static final int DAY_OF_WEEK: get 和 set 的字段数字,指示一个星期中的某天。该字段可取的值为
SUNDAY(1)、MONDAY(2)、TUESDAY(3)以此类推,所以如果它返回5,实际是周四
int days=calendar.getActualMaximum(Calendar.DATE);
public int getActualMaximum(int field): 返回指定日历字段可能拥有的最大值,也就是一个月有几天
calendar.add(Calendar.DATE, 1);
public abstract void add(int field,int amount): 根据日历的规则,为给定的日历字段添加或减去指定的时间量
实现代码:
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; /** * 可视化日历程序 * @author wwyDEPP * */ public class VisualCalender { public static void main(String[] args) { System.out.println("请输入要查询的日期,如2001-01-10"); Scanner s=new Scanner(System.in); String str=s.nextLine(); DateFormat format=new SimpleDateFormat("yyyy-MM-dd"); try { Date date=format.parse(str); Calendar calendar=new GregorianCalendar(); calendar.setTime(date); int today=calendar.get(Calendar.DATE); calendar.set(Calendar.DATE, 1); //输入日期的一号是周几,周日-1,周一-2,周三-4 int mon=calendar.get(Calendar.DAY_OF_WEEK); //输入日期的月份有几天 int days=calendar.getActualMaximum(Calendar.DATE); System.out.println("日\t一\t二\t三\t四\t五\t六"); //打印空格 for(int i=1;i<mon;i++){ System.out.print('\t'); } //打印数字 for(int i=1;i<=days;i++){ if(i==today){ System.out.print("["+i+"]\t"); }else{ System.out.print(i+"\t"); } //到星期六换行 int w=calendar.get(Calendar.DAY_OF_WEEK); if(w==Calendar.SATURDAY){ System.out.println(); } //日期加一 calendar.add(Calendar.DATE, 1); } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- myeclipse常用快捷键总结
- java设计模式——结构型之组合模式
- Eclipse IDE FOR JAVA常见错误
- java枚举的使用
- spring4整合quartz2定时器启动报:batch acquisition of 0 triggers
- Spring使用util Schema
- Java 信号量 Semaphore 介绍
- JDK8新特性面试
- JDK8新特性面试
- Java工程师成神之路
- Java编程入门
- Java笔记基础
- Spring使用p空间配置属性——基于XML Schema的简化配置
- 4- java client api
- 算法 汉诺塔-java详解
- 使用eclipse编译ns-3
- Struts-2.3.24.1官方例子-struts2-blank
- java nio bio aio
- java复利计算基本代码
- JAVA 对象引用,以及对象赋值