万年历呀,做一半不会,帮帮忙呗
时间:2011-12-24
来源:互联网
我就想用图形用户界面显示
可是不会,可不可以帮下忙
应该怎么做,效果想很系统的那个差不多
public class WanNianLi {
int year;//查找的年份
int month;//查找的月份
//计算所需查找月份距离1990年一月的天数,得到所需查找月份的一号是礼拜几
static public void Days(int _year,int _month) {
int days=0;//所需查找月份距离1990年一月的总天数天数
int beforeDays=0;//所需查找年份距离1990年一月的天数
int monthDays=0;//所需查找月份当月的天数
int week=0;//所需查找月份的一号是礼拜几
//计算得到所需查找年份距离1990年一月的天数
switch((_year-1990)%4)
{
case 0: {beforeDays=(_year-1990)/4*1461;break;}
case 1: {beforeDays=(_year-1990)/4*1461+365;break;}
case 2: {beforeDays=(_year-1990)/4*1461+730;break;}
case 3: {beforeDays=(_year-1990)/4*1461+1096;break;}
}
//计算得到所需查找月份距离1990年一月的天数与所需查找月份当月的天数
switch(_month)
{
case 1: {days=0;monthDays=31;break;}
case 2: {days=31;monthDays=28;break;}
case 3: {days=31+28;monthDays=31;break;}
case 4: {days=31+28+31;monthDays=30;break;}
case 5: {days=31+28+31+30;monthDays=31;break;}
case 6: {days=31+28+31+30+31;monthDays=30;break;}
case 7: {days=31+28+31+30+31+30;monthDays=31;break;}
case 8: {days=31+28+31+30+31+30+31;monthDays=31;break;}
case 9: {days=31+28+31+30+31+30+31+31;monthDays=30;break;}
case 10: {days=31+28+31+30+31+30+31+31+30;monthDays=31;break;}
case 11: {days=31+28+31+30+31+30+31+31+30+31;monthDays=30;break;}
case 12: {days=31+28+31+30+31+30+31+31+30+31+30;monthDays=31;break;}
}
//判断查找年份是否闰年
if((_year%4==0&&_year%100!=0)||(_year%400==0))
{
if(_month>2)days=days+1;//如果闰年且月份大于二月,总天数+1
if(_month==2)monthDays=monthDays+1;//如果闰年且月份等于二月,当月天数+1
}
days=days+beforeDays;//计算总天数
week=days%7;//计算所需查找月份的一号是礼拜几
getInfo(monthDays,week);//输出万年历
}
//输出万年历
static public void getInfo(int monthDays,int week) {
int a[]=new int[31];//月份的天数,初始化都有31天
int j=0;//判断换行(一周七天)
for(int i=0;i<31;i++) a[i]=i+1;//初始化月份
System.out.println(" 日 一 二 三 四 五 六");
if(week!=6) for(j=0;j<=week;j++) System.out.print(" ");//如果所需查找月份的一号不是礼拜天,就空出空位
for(int k=0;k<monthDays;k++)//开始输出日期
{
if(k<9)
System.out.print(" "+a[k]);
else if(k<monthDays)
System.out.print(" "+a[k]);
j++;
if(j==7)
{
System.out.println("");
j=0;
}
}
}
public static void main(String x[]){
int year=2011,month=1;//-----------------这里是改变查找条件的地方!!!!
Days(year,month);
}
}
可是不会,可不可以帮下忙
应该怎么做,效果想很系统的那个差不多
public class WanNianLi {
int year;//查找的年份
int month;//查找的月份
//计算所需查找月份距离1990年一月的天数,得到所需查找月份的一号是礼拜几
static public void Days(int _year,int _month) {
int days=0;//所需查找月份距离1990年一月的总天数天数
int beforeDays=0;//所需查找年份距离1990年一月的天数
int monthDays=0;//所需查找月份当月的天数
int week=0;//所需查找月份的一号是礼拜几
//计算得到所需查找年份距离1990年一月的天数
switch((_year-1990)%4)
{
case 0: {beforeDays=(_year-1990)/4*1461;break;}
case 1: {beforeDays=(_year-1990)/4*1461+365;break;}
case 2: {beforeDays=(_year-1990)/4*1461+730;break;}
case 3: {beforeDays=(_year-1990)/4*1461+1096;break;}
}
//计算得到所需查找月份距离1990年一月的天数与所需查找月份当月的天数
switch(_month)
{
case 1: {days=0;monthDays=31;break;}
case 2: {days=31;monthDays=28;break;}
case 3: {days=31+28;monthDays=31;break;}
case 4: {days=31+28+31;monthDays=30;break;}
case 5: {days=31+28+31+30;monthDays=31;break;}
case 6: {days=31+28+31+30+31;monthDays=30;break;}
case 7: {days=31+28+31+30+31+30;monthDays=31;break;}
case 8: {days=31+28+31+30+31+30+31;monthDays=31;break;}
case 9: {days=31+28+31+30+31+30+31+31;monthDays=30;break;}
case 10: {days=31+28+31+30+31+30+31+31+30;monthDays=31;break;}
case 11: {days=31+28+31+30+31+30+31+31+30+31;monthDays=30;break;}
case 12: {days=31+28+31+30+31+30+31+31+30+31+30;monthDays=31;break;}
}
//判断查找年份是否闰年
if((_year%4==0&&_year%100!=0)||(_year%400==0))
{
if(_month>2)days=days+1;//如果闰年且月份大于二月,总天数+1
if(_month==2)monthDays=monthDays+1;//如果闰年且月份等于二月,当月天数+1
}
days=days+beforeDays;//计算总天数
week=days%7;//计算所需查找月份的一号是礼拜几
getInfo(monthDays,week);//输出万年历
}
//输出万年历
static public void getInfo(int monthDays,int week) {
int a[]=new int[31];//月份的天数,初始化都有31天
int j=0;//判断换行(一周七天)
for(int i=0;i<31;i++) a[i]=i+1;//初始化月份
System.out.println(" 日 一 二 三 四 五 六");
if(week!=6) for(j=0;j<=week;j++) System.out.print(" ");//如果所需查找月份的一号不是礼拜天,就空出空位
for(int k=0;k<monthDays;k++)//开始输出日期
{
if(k<9)
System.out.print(" "+a[k]);
else if(k<monthDays)
System.out.print(" "+a[k]);
j++;
if(j==7)
{
System.out.println("");
j=0;
}
}
}
public static void main(String x[]){
int year=2011,month=1;//-----------------这里是改变查找条件的地方!!!!
Days(year,month);
}
}
作者: a494493597 发布时间: 2011-12-24
楼主先学会怎么发贴吧。把自己的代码格式化一下。 在发贴的地方有一个#一样的符号,你点一下
作者: 朝花夕拾 发布时间: 2011-12-24
引用 1 楼 的回复:
楼主先学会怎么发贴吧。把自己的代码格式化一下。 在发贴的地方有一个#一样的符号,你点一下
楼主先学会怎么发贴吧。把自己的代码格式化一下。 在发贴的地方有一个#一样的符号,你点一下
真是不好意思阿,下次我会注意的
这个代码现在能运行,但是我是想用图形用户界面显示
作者: a494493597 发布时间: 2011-12-24
那楼主就学一个AWT 和 swing 这两个用来做界面。
作者: 朝花夕拾 发布时间: 2011-12-24
引用 3 楼 的回复:
那楼主就学一个AWT 和 swing 这两个用来做界面。
那楼主就学一个AWT 和 swing 这两个用来做界面。
我就是没能看明白呀...
作者: a494493597 发布时间: 2011-12-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28