/*
* 打印万年历:1.判断当前月有多少天;2.判断第一天星期几;
*/
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.swing.JOptionPane;
public class TestCalendar03 {
public void test2() throws IOException, ParseException {
// 从控制台获取数据
// System.out.println("请输入时间:");
String strDate = JOptionPane.showInputDialog(null, "请输入时间(格式:yyyy-mm):",
"指定时间的日历",JOptionPane.INFORMATION_MESSAGE);
// 定义字符转日期的转换器
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
// 定义日期
Date date = sdf.parse(strDate);
// 获取关于指定日期的相关信息
Calendar cal = new GregorianCalendar();
cal.setTime(date);
System.out.println(strDate);
// DAY_OF_MONTH是获得当前时间点所在月的第几号
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
// 获取当月的最大天数
int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
// 获取当星期的第几天
int week = cal.get(Calendar.DAY_OF_WEEK);
System.out.println("dayofmonth:" + dayOfMonth + "\n" + "maxday:"
+ maxDay + "\n" + "dayofweek:" + week);
String[] s = { "日", "一", "二", "三", "四", "五", "六" };
for (int i = 0; i < s.length; i++) {
System.out.print(s[i] + "\t");
}
// 定义一个集合 存放 占位符和天数
List<String> temp = new ArrayList<String>();
for (int i = 1; i < week; i++) { // 添加占位空格
temp.add(" ");
}
for (int i = 1; i <= maxDay; i++) { // 添加天数
// temp.add(String.valueOf(i)); //第一种转字符串方法
temp.add(i + " "); // 第二种,加个字符串,自动转
}
// 打印日期
for (int i = 0; i < temp.size(); i++) {
if (i % 7 == 0) {
System.out.println();
}
System.out.print(temp.get(i) + "\t");
}
}
public static void main(String[] args) throws IOException, ParseException {
TestCalendar03 tc = new TestCalendar03();
tc.test2();
}
}
//第二种方法
public void getCalender(){
try {
System.out.println("请输入时间:(yyyy-mm)");
String strDate = new BufferedReader(new InputStreamReader(System.in)).readLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
//定义日期
Date date = sdf.parse(strDate);
//获取关于指定日期的相关信息
Calendar cal = new GregorianCalendar();
cal.setTime(date);
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 0; i < cal.get(Calendar.DAY_OF_WEEK)-1; i++) {
System.out.print("\t");
}
for (int i = 1; i <= cal.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
cal.set(Calendar.DATE, i);
if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
System.out.println(i+"\t");
}else
System.out.print(i+"\t");
}
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类.zip10.javaDate类...
打印当前时间.通过代码运行后,自动获取获取当前个人微型计算机的当前时间日期。
java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx
JAVA的Date类与Calendar类.docx
23 KEIL4单片机万年历设计 KEIL4单片机万年历设计全文共24页,当前为第1页。KEIL4单片机万年历设计全文共24页,当前为第1页。 KEIL4单片机万年历设计全文共24页,当前为第1页。 KEIL4单片机万年历设计全文共24页,...
(2)日期加一天操作; (3)输出函数,输出格式为“XXXX-XX-XX”; (4)编写主函数,定义对象,完成相应功能。 程序的参考的输入(“Input Date:”为提示文字): Input Date:2016 2 28 程序的输出: 2016-2-28 ...
Date时间操作工具类 js: 1.一个日期时间加上分钟数,得到一个新的日期时间 2.判断当前时间是否在时间段之内 3.根据默认的格式格式化时间 4.根据指定的格式格式化时间 5.改变月份 6.改变天数 7.计算天数间隔 8.Date转...
perl-TimeDate-1.1301-1.noarch.rpm
1、确定该年第一天是星期几:通过查阅资料,蔡勒公式 可以推出日期对应的星期。这部分写在getFirstDayWeek()函数里。 2、闰年判定:其次要判断闰年来确定2月的天数,方法为能被4整除且不被100整除或者能被400整除...
obs-文本-脚本 date-and-time.lua
Java的java.util.Date类是Java初的时间类之一。该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类。不过你仍然可以使用java.util.Date类去表示某个时间。下面是一个如何实例化java.util.Date的例子:...
java 使用Date类获取系统的当前时间 java 使用Date类获取系统的当前时间 java 使用Date类获取系统的当前时间
Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(new Date()); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday System.out.println(c....//本月第一天
java中util.date和sql.date的类型转换问题.帮助大家很完善的了解关于java日期类型和数据库日期类型转换的问题,很值得拥有.
Date2(2).cpp
java.sql.date与java.util.date.pdf
类型转换 ( Java.util.date与java.sql.date区别和转换