请选择年份;2003
请选择月份; 2 平年和闰年显示 计算输入的月份到1900年的天数
星期日 星期一 星期二 星期三 星期四 星期五 星期六 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 31
解决方案 »
- 刷新JTable表格,执行一会儿后报错
- InputStreamReader 类的问题。
- socket通信问题
- java时间差问题
- combobox 上添加控件 问题, 急,帮帮忙
- 很怪异的现象,请高手给予解释~~~~谢谢~~~~
- 在一个系统中,如何判断一个java对象没有被其他对象使用到?
- 谁能给我讲javabean,ejb,jsp,servlet,struts,jabc基本概念(最好用自己的话来描述)及大家在实际项目中用法?
- 向高手们问个简单的问题?
- ************请问socket与socket4、socket5有什么关系?***********
- float问题
- 跪求方法(二进制字符串转换成整数)
1号: 82085373
2号: 55191814
3号: 89238748
4号: 56418364
5号: 157181129
6号: 74671714请勿重复加群......
import java.text.*;
import java.util.*; .... SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd ");
Date d1 = df.parse( "");
Date d2 = df.parse( ""); long dt = d2.getTime() - d1.getTime();
long days = dt / (3600 * 24)
if (dt % (3600 * 24) > 0) days++;
{
int year; //年 2010
int month; //月 6
//显示日历
public void show()
{
int days=this.getDays(year, month);
int weekday=this.getWeekday(); //假设1号是星期三
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//控制输出1号之前的空格
for(int i=1;i<=weekday;i++)
{
System.out.print("\t");
}
//输出每一天
for(int i=1;i<=days;i++)
{
System.out.print(" " + i +"\t");
if((weekday+i)%7==0)
{
System.out.print("\n");
}
}
}
//判断是否是闰年
public boolean isLeapYear(int year) //year=2010
{
if(year%4 ==0 && year%100!=0 || year%400==0)
{
return true;
}
else
{
return false;
}
}
//得到某年某月的天数
public int getDays(int year,int month)
{
int days=0;
if(month==1 ||month==3 || month==5 ||month==7 ||month==8 ||month==10 ||month==12 )
{
days=31;
}
else if (month==4 ||month==6 || month==9 ||month==11)
{
days=30;
}
else if (month==2)
{
if(year%4 ==0 && year%100!=0 || year%400==0)
{
days=29;
}
else
{
days=28;
}
}
return days;
}
//计算距1900-1-1的总天数
public int sumDays()
{
int sumDays=0; //距1900年1月1日相差的天数
for(int i=1900;i<year;i++) // 在这的i表示,相差的年份变化
{
if(isLeapYear(i)==true)
{
sumDays=sumDays+366;
}
else
{
sumDays=sumDays+365;
}
}
for(int i=1;i<month;i++) // 在这的i表示,零几个月的变化
{
sumDays=sumDays+getDays(year, i);
}
return sumDays;
}
//(相差的天数+1)%7 ,1号是星期几
public int getWeekday()
{
int weekday=(sumDays()+1)%7;
return weekday;
}}
package DK_Date;import java.util.Date;public class DK_Date { public int Year; // 年份
public int Month; // 月份
public int Day; // 日期
public int Days; // 当月有几天
public int Week; // 当月第一天为周几 public void getCurDate() {
Date date = new Date(); this.Year = date.getYear() + 1900;
this.Month = date.getMonth() + 1;
this.Day = date.getDate();
} /**
* 判断是否为闰年
*
* @param year
* @return 如果为真则为闰年,反之为平年
*/
public boolean isRun(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 )
return true;
return false;
} /**
* 计算当月天数
*
* @param month
* 月份
* @param year
* 年份
*/
public void getDays(int month, int year) {
switch (month) {
case 2:
if (isRun(year))
this.Days = 29;
else
this.Days = 28;
break;
case 4:
case 6:
case 9:
case 11:
this.Days = 30;
break;
default:
this.Days = 31;
break;
}
} /**
* 计算当月第第一天是一年中的第几天
*
* @param month
* @param year
* @return
*/
public int getYearDays(int month, int year) {
int days = 1;
for (int i = 1; i < month; i++) {
switch (i) {
case 2:
if (isRun(year))
days += 29;
else
days += 28;
break;
case 4:
case 6:
case 9:
case 11:
days += 30;
break;
default:
days += 31;
break;
}
}
return days;
} /**
* 计算1900年到当年1月1日经过了多少天
*
* @param year
* 当前年份
* @return
*/
public int getYearsDay(int year) {
int days = 0;
for (int i = 1900; i < year; i++) {
if (isRun(i))
days += 366;
else
days += 365;
}
return days;
} /**
* 计算当月第一天为周几
*
* @param year
* 年份
* @param month
* 月份
*/
public void getWeek(int year, int month) {
int days = getYearsDay(year) + getYearDays(month, year);
this.Week = days % 7 == 0 ? 7 : days % 7;
}
}
package DK_Date;import java.util.Scanner;public class DateUI { private DK_Date date;
Scanner scanner = new Scanner(System.in); public void initial() {
date = new DK_Date();
date.getCurDate();
date.getWeek(date.Year, date.Month);
date.getDays(date.Month, date.Year);
} public void show() {
System.out.println("◆◇◆◇◆◇ DK 万年历 ◆◇◆◇◆◇\n");
System.out.println("北京时间:" + date.Year + "年" + date.Month + "月"
+ date.Day + "日\n");
getShow(date.Week, date.Days);
while (true) {
System.out.println("\n请输入年份:");
date.Year = scanner.nextInt();
System.out.println("请输入月份:");
date.Month = scanner.nextInt();
date.getWeek(date.Year, date.Month);
date.getDays(date.Month, date.Year);
getShow(date.Week, date.Days);
}
} public void getShow(int week, int days) {
System.out.println("周日\t周一\t周二\t周三\t周四\t周五\t周六\t");
if (week != 7) {
for (int i = 0; i < week; i++) {
System.out.print("\t");
}
}
for (int i = 1; i <= days; i++) {
System.out.print(i + "\t");
if (i % 7 == 7 - week) {
System.out.println();
}
}
}
}package DK_Date;public class Start { public static void main(String[] args)
{
DateUI date = new DateUI();
date.initial();
date.show();
}
}