4、在本地一个名为“Date.in”的文本文件中,以**** **形式存放着日期,
其中****为年,**为月(年的位数小于等于4,月的位数小于等于2,中间用空格分开)。
请编一程序, 将该年、月的日历以字符方式表存于本地的“Date.out”中。
例如时间为2011年4月,Date.out中的内容为:
2011 4
Sun Mon Tue Wed Thu Fri Sat
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
public class ex_04 {
static String regEx = "(1|3|5|7|8|10|12)";
static Pattern p;
static Matcher m;
// 判断是否为闰年
static boolean isLeapYear(int year) {
if (year % 400 == 0 || ((year % 4 == 0) && (year % 100 != 0)))
return true;
else
return false;
}
// 获取某月的总天数
static int getDays(int year, int month) {
int day = 0;
String str = String.valueOf(month);
p = Pattern.compile(regEx);
m = p.matcher(str);
boolean b = m.find();
if (b) {
day = 31;
} else if (month == 2) {
if (isLeapYear(year))
day = 29;
else
day = 28;
} else {
day = 30;
}
return day;
}
static void WriteData(String str) throws IOException {
FileWriter fw = new FileWriter("F:\\ExTxt\\dateRiLi.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(str);
bw.newLine();
bw.close();
}
public static void main(String[] args) throws IOException, ParseException {
FileReader fr = new FileReader("F:\\ExTxt\\date.txt");
BufferedReader br = new BufferedReader(fr);
String str = br.readLine();// 读文件内容
String strWriter = "";
int year = Integer.parseInt(str.substring(0, 4));
int month = Integer.parseInt(str.substring(5));
strWriter = year + " " + month;
System.out.println(strWriter);
WriteData(strWriter);// 写文件
strWriter = "";// 清空
strWriter = "Sun\t" + "Mon\t" + "Tue\t" + "Wed\t" + "Thu\t" + "Fri\t"
+ "Sat\t";
System.out.println(strWriter);
WriteData(strWriter);// 写文件
strWriter = "";// 清空
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
Date date = sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);// 设置Calendar的时间
// Calendar中1-星期天,2-星期一,3-星期二,4-星期三,5-星期四,6-星期五,7-星期六
int firstDay_Of_Week = calendar.get(Calendar.DAY_OF_WEEK);// 本月的第一天是星期几
int firstWeek_end = 7 - firstDay_Of_Week + 1;// 本月的第一周结束是几号
// 输入日历的第一行内容
for (int i = 1; i < firstDay_Of_Week; i++) {
strWriter += "\t";
System.out.print("\t");
}
for (int i = 1; i <= firstWeek_end; i++) {
strWriter += i + "\t";
System.out.print(i + "\t");
}
//按行写入到文件
WriteData(strWriter);//写日历的第一行
strWriter = "";// 清空
System.out.println();
int sumDay = getDays(year, month);// 获取本月的总天数
int flag = 0;// 设置标记
for (int i = firstWeek_end + 1; i <= sumDay; i++) {
if (flag == 7) // 当一行输入七个数字时就换行
{
WriteData(strWriter);
System.out.println();
//WriteData("\r\n");//写文件换行
strWriter="";//清空
flag = 0;
}
strWriter+=i + "\t";
System.out.print(i + "\t");
flag++;
}
WriteData(strWriter);//写日历的最后一行
}
}
分享到:
相关推荐
总的来说,这个"JAVA课程设计打印日历含GUI"项目是一个很好的实践,涵盖了Java编程的多个方面,包括面向对象编程、图形用户界面设计和日期时间处理,对于提升学生的综合技能大有裨益。通过完成这个项目,学生不仅能...
在Java编程中,打印日历是一项常见的任务,尤其在处理日期和时间相关的应用时。"打印日历"这个功能涉及到对日历对象的操作,以及如何按照特定格式输出日期信息。在Java中,我们可以使用`java.util.Calendar`类来创建...
在Java编程语言中,打印日历是一个常见的任务,它涉及到日期和时间的处理。这个实例将会展示如何使用Java的内置库来创建一个日历并将其打印出来。在Java中,`java.util.Calendar`类和`java.time`包(自Java 8引入)...
在Java编程语言中,创建一个日历应用是一个常见的任务,它可以用于查看特定年份、月份和日期的日历。本文将详细讲解如何使用Java基础库来实现这个功能。 首先,我们需要了解Java中的`java.util.Calendar`类,它是...
本篇文章将深入探讨如何使用Java来导入并读取微软的Project文件,同时也提供了一套相关的代码示例。 首先,我们要知道微软的Project文件通常是以.mpp格式存储的,这些文件包含了项目的详细信息,如任务、资源、时间...
Java打印日历是一个基本的程序开发任务,主要涉及Java编程语言和日历API的使用。在Eclipse这样的集成开发环境中,开发者可以编写这样的小程序来展示日期和时间信息,或者进行特定的日历操作。下面我们将详细探讨相关...
如果`CalenderTrain.java`使用了`Calendar`类,那么它可能包含创建、修改、查询日期以及打印日历信息的方法。`Calendar`类提供了丰富的API,可以进行日期加减、获取星期几、获取月份等操作。 在学习这个日历源码时...
在压缩包的文件名列表中,有`www.pudn.com.txt`和`用java语言编写的日历`,`www.pudn.com.txt`可能是下载资源的来源信息,而`用java语言编写的日历`可能是一个源代码文件,里面包含了具体的日历程序实现。...
最后,从压缩包文件中的"用java语言编写的日历"来看,这可能是一个包含示例代码的项目。解压后,你可以通过阅读源码了解具体实现,研究如何整合这些日期时间API来构建日历功能。学习和理解这段源码可以帮助加深对...
总的来说,编写一个简单的Java日历程序需要对Java日期时间API有深入理解,并能够结合控制台交互、输入输出和文件操作。通过以上介绍,你应该能理解如何着手实现这样的程序,同时也可以参考给定的源代码进行学习和...
文件`CalendarTestDome`可能包含了一个示例,演示了如何使用`java.time`包中的类来创建、操作和打印日期和时间。分析这个源码可以帮助理解这些类的实际应用。 通过理解和熟练使用Java的`java.time`包,开发者能够...
对于源码分析,我们可以看到文件`用java语言编写的日历`中可能包含了主类、日期处理类、事件类等。源码会包含如何实例化日期对象、如何组织日历结构、如何读取和显示事件,以及可能的用户交互逻辑。通过阅读和学习...
最后,打印日历通常需要格式化日期,如"YYYY年MM月DD日"。Java 8的`DateTimeFormatter`类提供了强大的日期格式化功能。 ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu年MM月dd日"); ...
根据给定的文件信息,我们可以总结出以下关于Java编程语言中的日历程序的关键知识点: ### 一、程序功能概述 这段代码实现了一个简单的日历程序,可以计算指定年份和月份的日历布局,并打印出相应的日历。主要功能...
4. **打印日历**:为了输出日历,程序可能需要遍历一个月的所有日期,这可以通过增加日期(`add(int field, int amount)`)并检查是否达到下个月来实现。 5. **计算日期间隔**:`getTimeInMillis()`方法可以获取...
首先,我们来看`rili.java`这个文件,这很可能是一个包含Java代码的源文件,用于演示如何使用Calendar类。在Java中,`java.util.Calendar`是抽象类,提供了创建、操作和查询日期和时间的方法。我们可以通过`Calendar...
它可能包含了处理日期对象、转换日期格式以及打印日历布局的方法。 3. **Test**:这是一个测试类,很可能使用JUnit或其他测试框架,用于验证`CoreBiz`和`DateFrame`类的功能是否正确。测试是软件开发中必不可少的一...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
简单的日历小程序,输入月份,可以显示出一年的日历,并且存入文件中