⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 computedate.java

📁 java编写的带界面的日历程序。可以点击某一个时间
💻 JAVA
字号:
/****************************************************************************************
*							Java日历程序

*    作者:张亚航
*
*    完成时间:2008-5-22
*
*	 程序功能:
*    Control包中的ComputeDate类主要是用来计算每个月的第一天是星期几以及每个月的总天数
*    
*    程序设计思想:
*    本程序的主要的思想是计算公元后某一年,根据MyDate对象中的year属性,计算在这年之前的总天数
*    然后计算每个月的偏移量,
*    然后mod 7求余数来计算每个月第一天的偏移量
*
******************************************************************************************/


package control;
import java.util.*;
import model.MyDate;
public class ComputeDate 
{
	int i,day,year;
	int daysOfYear;
	long wholeDays = 0;
	int daysOfMonth = 0;
	
	/*******************计算在这年之前的总天数*************************/
	public long getWholeDays(MyDate date)
	{
		long dayCount=0;
		for(int yearCount=1;yearCount<date.getYear();yearCount++)
		{
			//System.out.print("aaaaaaaaaaaaaa"+date.getYear());
			if(isLeapYear(yearCount))
				daysOfYear=366;
			else
				daysOfYear=365;
			dayCount += daysOfYear;
		}
		return dayCount;
	}
	
	/*******************计算在这年每个月的偏移量*************************/
	public long getFirstDay(MyDate date)
	{
		int curYear = date.getYear();  //当前年份
		int curMonth = date.getMonth();//当前月份
		int flagDay = 0;               //该标记是个标记量,主要是当闰年的时候,则进行标记,很多偏移量根据这个变量来进行计算以区别闰年闰月
		wholeDays = getWholeDays(date);
		
		long firstDay = 0;
		if(isLeapYear(curYear))
		{
			flagDay = 1;
			//System.out.print("aaaaaaaaaaaaaa"+flagDay);
		}
		
		

		//计算某一个月份的偏移量
		switch(curMonth)
		{
		case 1 : firstDay = wholeDays%7;daysOfMonth=31; break;
		case 2 : wholeDays+=31;firstDay = wholeDays%7; daysOfMonth=28+flagDay; break;
		case 3 : wholeDays+=59+flagDay;firstDay = wholeDays%7; daysOfMonth=31; break;
		case 4 : wholeDays+=90+flagDay;firstDay = wholeDays%7; daysOfMonth=30; break;
		case 5 : wholeDays+=120+flagDay;firstDay = wholeDays%7; daysOfMonth=31; break;
		case 6 : wholeDays+=151+flagDay;firstDay = wholeDays%7; daysOfMonth=30; break;
		case 7 : wholeDays+=181+flagDay;firstDay = wholeDays%7; daysOfMonth=31; break;
		case 8 : wholeDays+=212+flagDay;firstDay = wholeDays%7; daysOfMonth=31; break;
		case 9 : wholeDays+=243+flagDay;firstDay = wholeDays%7; daysOfMonth=30; break;
		case 10: wholeDays+=273+flagDay;firstDay = wholeDays%7; daysOfMonth=31; break;
		case 11: wholeDays+=304+flagDay;firstDay = wholeDays%7; daysOfMonth=30; break;
		case 12: wholeDays+=334+flagDay;firstDay = wholeDays%7; daysOfMonth=31; break;
		}
		return firstDay;
	}
	
	//获得该月份总天数
	public long getDaysOfMonth(MyDate date)
	{
		getFirstDay(date);
		return daysOfMonth;
	}
	
	/*******************判断是否为闰年*************************/
	public boolean isLeapYear(int year)
	{
		if ((year %4 == 0) && (year % 100 != 0)||(year % 400 == 0))
			return true;
		else
			return false;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -