永发信息网

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

答案:3  悬赏:70  手机版
解决时间 2021-04-03 05:48
如何用JAVA编写出一个简单的日历
最佳答案
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 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);

}
}
用一个类来实现
全部回答
我自己写了一个,你自己好好学习学习理解吧
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{
a[i]="**";
}
for(int i=xingqi,n=1;i{
if(n<=9)
{
a[i]=String.valueOf(n);
}
else
{
a[i]=String.valueOf(n);
}
n++;
}
for(int i=0;i{
if(i%7==0)
{
System.out.println("");//换行
}
System.out.print("\t"+a[i]);
}
}
}
买本JAVASCRIPT编程的本。仔细看一下,做简单的日历是最基础的。只要用心看了,就一定会编了,而且对以后编程也有好处!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求许嵩新歌《半城烟沙》这首歌的歌词
哪个APP能领dnf礼品
什么牌子的童装买的人多呢?
已知关于x的方程-2=解为正数,求m的取值范围
立秋后,马舌菜(野菜)还能吃吗
父母对我的感情干涉过多,他们似乎永远不知道
火柴盒的标准尺寸是多少
改扩建项目的概念及特点?
秦国秦荡做皇帝了吗
想知道: 潞城市 从潞宝集团到长治市客运中心
我的心经常在午饭后到下午感觉扑通扑通地跳,
微星z97 gaming3 怎么超频啊
淘宝快递地址达州市南外怎么选
怎么调显卡fps高
饭后可以吃夏黑吗
推荐资讯
40多天哈士奇 得了细小现在已经5天了.
we heard her_____ (sing)in the next room a
POE和EPDM哪个增韧PP效果好点,区别是什么
我都活不下去了,有人拿次声波害我,该怎么维
我过生日时一个女的送一百块钱给我是什么意思
求大神帮忙阿 Maya2014破解版
企业无人自助购物便利店哪个好?
怎么现在微信提现要收费4角多的费用了
半球阀多少钱一台
下面各句中标点符号使用合符规范的一项是A.“
江城警事 杨先用的什么样的手机
请问手机流量管理中的1GB等于多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?