`
miaoge
  • 浏览: 109338 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类

【Date类】打印万年历;1.判断当前月有多少天;2.判断第一天星期几;

阅读更多
/*
 * 打印万年历: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类.zip

    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

    1. **规范化问题**:当使用`java.sql.Date`时需要注意,它的日期部分是规范化的,即只包含日期而没有时间。这意味着任何传递给它的非规范化的时间信息(如小时、分钟等)将会被清除。 2. **日期格式的匹配**:在...

    判断当前日期是否在本月的最后一周内

    我们可以获取本月的第一天,然后加上一个月的天数,得到下个月的第一天。接着,我们可以通过`TemporalAdjusters.previousOrSame(DayOfWeek)`找到下月第一天的前一个周日,这就是本月的最后一个完整周的开始。再计算...

    NextDate()函数判断输入日期的下一天(C语言编写)

    - **一月、三月、五月、七月、八月、十月**:这些月份有31天,如果日期为31,则返回下个月的第一天;否则日期加一。 ### 日期合法性检查功能解析 为了确保输入的日期合法,程序还包含了`legal()`函数,该函数用于...

    万年历数据库.db文件

    1. `Dates`表:存储公历日期及其对应的星期、农历日期等信息。 2. `Lunar`表:记录农历日期,包括月、日、闰月等细节。 3. `Festivals`表:存储各种节日和纪念日的信息,包括名称、日期和类型(如法定假日、传统节日...

    JAVA的Date类与Calendar类.docx

    1. **表示当前时间**:Date类有一个无参构造函数,创建的实例代表当前系统时间。例如`new Date()`,打印出来会显示具体的日期和时间,格式如"Sun Mar 08 16:35:58 CST 2009",其中CST表示中国标准时间。 2. **表示...

    c语言万年历源码.zip

    对于每个月的天数,非闰年的2月有28天,其他月份根据奇偶性分30天或31天。闰年的2月则有29天。可以创建一个数组来存储这些信息: ```c int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /...

    Android 万年历源码.zip

    1. Java时间处理:在Android中,Date和Calendar类是处理日期的基础,源码可能涉及日期的增减、比较、格式化等操作。 2. 闰年判断:万年历需准确识别闰年,通过计算年份能否被400整除或能被4整除但不能被100整除的...

    java.sql.date与java.util.date.pdf

    1. 将Java.util.Date转换为Java.sql.Date Java.sql.Date sd; Java.util.Date ud; // initialize the ud such as ud = new Java.util.Date(); sd = new Java.sql.Date(ud.getTime()); 2. 若要插入到数据库并且相应...

    Java-Date 类的学习总结.pdf

    下面是对 Date 类的学习总结,包括计算某一月份的最大天数、Calendar 和 Date 的转化、把字符串转化为 java.util.Date、把字符串转化为 java.sql.Date、格式化输出日期时间、计算一年中的第几星期等。 计算某一月份...

    java.util.Date与java.sql.Date相互转换

    1. **使用 getTime() 函数** `java.util.Date` 和 `java.sql.Date` 都提供了 `getTime()` 方法,该方法返回表示该日期的毫秒数。通过这种方法,可以方便地实现两种日期类型的转换: ```java // java.sql.Date ...

    ASP源码—程序简单的日历万年历黄历.zip

    2. **循环与条件判断**:在生成日历时,需要遍历每个月的每一天,并判断是否为周末、节假日等特殊日期。这需要用到For...Next或Do...Loop等循环结构,以及If...Then...Else条件语句。 3. **HTML输出**:ASP可以动态...

    运用js实现一个万年历程序.rar

    2. 计算该月有多少天(`getDate()`可能不够,需要特别处理闰年和不同月份的情况)。 3. 创建HTML结构,填充星期和日期。 4. 添加特殊日期的处理,比如标记节假日或生日。 为了支持万年历功能,我们需要提供用户选择...

    打印当前时间:date.c

    打印当前时间.通过代码运行后,自动获取获取当前个人微型计算机的当前时间日期。

    Date类中的方法.docx

    1. **创建Date对象**:创建`Date`对象通常有两种方式,一种是通过`new Date()`构造器,它会返回当前系统时间的日期和时间;另一种是通过`Date(System.currentTimeMillis())`,这里的`System.currentTimeMillis()`...

Global site tag (gtag.js) - Google Analytics