如何用JAVA编写出一个简单的日历

只要实现随便输入一个年份一个月份就能把那个月的日程打印出来就行,,,我属于刚入门及别,,头都想破了~~~~... 只要实现随便输入一个年份一个月份就能把那个月的日程打印出来就行
,,,我属于刚入门及别,,头都想破了~~~~
展开
 我来答
匿名用户
2013-10-22
展开全部
import javax.swing.JOptionPane;

public class NewClass{
public static void main(String[] args){
int year,month;
Calender cal=new Calender(2008,10);
cal.showCalender();
year=Integer.parseInt(JOptionPane.showInputDialog("Year:"));
month=Integer.parseInt(JOptionPane.showInputDialog("Month:"));
cal.setYear(year);
cal.setMonth(month);
cal.showCalender();
}
}

class Calender{
private int year,month;
public Calender(){
year=0;
month=1;
}
public Calender(int year){
this.year=year;
month=1;
}
public Calender(int year,int month){
this.year=year;
if(month>12)
this.month=month%12;
else
this.month=month;
}
public void setYear(int year){
this.year=year;
}
public void setMonth(int month){
if(month>12)
this.month=month%12;
else
this.month=month;
}
private int dayOfMonth(){
int days=0;
switch(month){
case 1:days=31;break;
case 2:{
if(((year%4==0)&&(year%100!=0))||(year%400==0))
days=29;
else
days=28;
break;
}
case 3:days=31;break;
case 4:days=30;break;
case 5:days=31;break;
case 6:days=30;break;
case 7:days=31;break;
case 8:days=31;break;
case 9:days=30;break;
case 10:days=31;break;
case 11:days=30;break;
case 12:days=31;break;
default:
days=0;
}
return days;
}
private int dayOfWeek(){
int Y=year;
int M=month;
int D=1;
int A;
A = Y>0?(5+(Y+1)+(Y-1)/4-(Y-1)/100+(Y-1)/400)%7:(5+Y+Y/4-Y/100+Y/400)%7;
A = M>2?(A+2*(M+1)+3*(M+1)/5)%7:(A+2*(M+2)+3*(M+2)/5)%7;
if (((Y%4 == 0 && Y%100 != 0)|| Y%400 == 0) && M>2) A =(A+1)%7;
A=(A+D)%7;
return A;
}
public void showCalender(){
String str=new String();
str=" ";
str+=year+"年"+month+"月";
str+="\n\n";
str+="日 一 二 三 四 五 六\n";
int week=this.dayOfWeek();
for(int i=0,j=1;i<7;i++){
if(i<week)
str+=" ";
else{
str+=" "+j+" ";
j++;
}
}
str+="\n";
end:
for(int i=7-week+1;i<=this.dayOfMonth();){
for(int j=0;j<7;j++){
if(i<10)
str+=" "+i+" ";
else
str+=i+" ";
i++;
if(i>this.dayOfMonth())
break end;
}
str+="\n";
}
JOptionPane.showMessageDialog(null,str);

}
}
用一个类来实现
匿名用户
2013-10-22
展开全部
买本JAVASCRIPT编程的本。仔细看一下,做简单的日历是最基础的。只要用心看了,就一定会编了,而且对以后编程也有好处!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-22
展开全部
我自己写了一个,你自己好好学习学习理解吧
import java.util.Scanner;
class CalendarExample
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
int year,month,day;
System.out.print("输入年份:");
year=in.nextInt();
System.out.print("输入月份:");
month=in.nextInt();
System.out.print("输入日子:");
day=in.nextInt();
Calendar rili=Calendar.getInstance();
System.out.println("\t日\t一\t二\t三\t四\t五\t六");
rili.set(year,month,day);//设置日期将日历翻到指定日期
int xingqi=rili.get(Calendar.DAY_OF_WEEK)-1;//记录星期是星期几,如果是1就是日,7为六
String a[]=new String[xingqi+31];//存放号码的一维数组
for(int i=0;i<xingqi;i++)
{
a[i]="**";
}
for(int i=xingqi,n=1;i<xingqi+31;i++)
{
if(n<=9)
{
a[i]=String.valueOf(n);
}
else
{
a[i]=String.valueOf(n);
}
n++;
}
for(int i=0;i<a.length;i++)//输出数组
{
if(i%7==0)
{
System.out.println("");//换行
}
System.out.print("\t"+a[i]);
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式