问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java课程设计以界面方式输入一个日期,计算是星期几,求大神,谢谢!

发布网友 发布时间:2024-10-03 19:14

我来回答

2个回答

热心网友 时间:2024-11-11 17:44

给你参考一个我们老师之前写过的一个代码 ,测试没有问题。程序中有注释,可以看看,不懂的可以给我消息。
import javax.swing.JOptionPane;

public class DateTest {

/**
* @param args
*/
//上面是非闰年的,下面是闰年的每个月的天数
其实每次遇到不会的都来求助是很不方便的
如果你想了解和学习更多的JAVA编程,成为一名真正的JAVA高手,你可以来这个裙,前面三个数是四二六 中间是三九六 后面是二八四
把这串数字连起来就可以了,这是一个高手的学习裙,在这里你可以学习到书上学不到的知识,还有大牛相互讨论并指导你解答哦!

static int M[]={31,28,31,30,31,30,31,31,30,31,30,31};
static int M1[]={31,29,31,30,31,30,31,31,30,31,30,31};

static int year = 0;
static int month = 0;
static int day = 0;
static int sum_day = 0;

public static void main(String[] args) {
// TODO Auto-generated method stub
String date=JOptionPane.showInputDialog(null,"请输入日期YYYY-MM-DD:","是星期几?",JOptionPane.PLAIN_MESSAGE);

//2007-01-01是星期一,选择2007就是因为他的第一天是星期一。
//先计算输入的日期和2007年1月1日的差距天数

//将输入的信息的年月日信息提取出来
String arr[] = date.split("-");
year = Integer.parseInt(arr[0]);
month = Integer.parseInt(arr[1]);
day = Integer.parseInt(arr[2]);

//如果是2007年之后的
if(year>2007)
{
int i;
for(i=2007;i<year;i++)
{
if(check(i))
sum_day += 366;
else sum_day += 365;
}
comCurYear(year,0);
}
else if(year==2007)
{
comCurYear(year,0);
}
else//2007年之前的
{
int i;
for(i=2006;i>year;i--)
{
if(check(i))
sum_day += 366;
else sum_day += 365;
}
comCurYear(year,1);
}
//由于只有7个我就全部输出来了。没有用数组来判断。
int temp = sum_day%7;
if(temp==1)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期一");
if(temp==2)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期二");
if(temp==3)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期三");
if(temp==4)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期四");
if(temp==5)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期五");
if(temp==6)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期六");
if(temp==0)
JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期日");
}

//检验一年是不是闰年
public static boolean check(int Y)
{
if(Y%400==0) return true;
else if(Y%4==0&&Y%100!=0) return true;
else return false;
}
public static void comCurYear(int Y,int flag)
{
int year_flag=0;
if(check(Y)) year_flag=1;

int k;
if(flag==0)//year>=2007
{
for(k=1;k<=12;k++)
{
if(k<month)
{
if(year_flag==1) //闰年
{
sum_day += M1[k-1];
}
else sum_day += M[k-1];
}
else if(k==month) sum_day += day;
else if(k>month) break;
}
}
if(flag==1)//year<2007
{
for(k=12;k>=1;k--)
{
if(k>month)
{
if(year_flag==1) //闰年
{
sum_day += M1[k-1];
}
else sum_day += M[k-1];
}
else if(k==month) //闰年
{
if(year_flag==1)
{
sum_day += M1[k-1]-day;
}
else sum_day += M[k-1]-day;
}
else if(k<month) break;
}
//下面两句话是对2007之前的年做一个处理,比如相差5天,其实是应该不是星期5而是星期2
int temp = sum_day%7;
sum_day = sum_day-temp + 7-temp;
}
return ;
}
}

热心网友 时间:2024-11-11 17:48

请私信我我可以帮你解决
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
立秋后钓鱼什么风向好-立秋钓鱼风向怎么选 赱乂砉込儬 怎么读 "赱"读什么? 解决电脑无法搜索到iPhone热点的问题如何修复iPhone热点无法在电脑上显... 电脑搜不到iphone12热点 iphone开热点给电脑搜不到 国企的地产有哪些 国企下设公司是什么意思? 红加蓝加绿是什么色. 梦幻西游75级开三倍抓鬼一轮有多少经验 白酒辨别新思路 白酒怎么鉴别真假的办法 逸仕这个站点上的酒水有假货吗?如何辨别葡萄酒的真伪? 去陕西府谷从日照怎么走 易碎标签生产厂家 保定离府谷有多远,大约走多少时间 府谷有到保定的火车吗 我的配置能玩 科林麦克雷:尘埃2 吗? 如何保养水磨石地板砖 弱弱的问一句 我这垃圾电脑能跑尘埃2么=-= 我估计玩不了,只抱着试试... 准备换CPU,换I3的话会不会退休很快,如果是I5能用多久? 我这个配置玩“科林麦克雷--尘埃2”没问题吧? 这个配置可以玩《科林麦克雷:尘埃2》 吗 CPUATHLON64 3200+ 硬盘80 内... 科林麦克雷尘埃2配置要求 烧锅炉没插烟板会中毒吗 这个配置能玩科林麦克雷拉力赛车:尘埃2吗 我的I3CPU是不是有点过时了? 求可以过跑跑卡丁车 挑战者模式的辅助 要最新最全的 100财富 跑跑卡丁车挑战者模式好玩吗 跑跑卡丁车 挑战者模式用 棉花糖HT LE能从01打到50吗 ...一只从树上掉落的雏鸟,但是不知道是什么鸟,该怎样喂它? 男人比女人大8岁是不是很多? 大连蓝鲨特警支队直招,怎么样报名 肝内实性结节血管瘤是什么意思 特警车有车牌吗 睡莲的别名有什么名字 ...墙面刷淡淡的米黄色,白色的水磨石地板,褐色门,白色床,白色衣_百 ... 国内手机不取消sim卡而使用esim,真是怕动了电信运营商的蛋糕? SIM卡经历了哪些尺寸变化? 如何清洁水磨石地板砖 简单的韩文翻译 急~! 装修时瓷砖留下的水泥如何去掉 第一次同房不流血正常吗 处女为什么第一次没流血 第一次没流血但是很痛是怎么回事 同房第一次没出血怎么回事 第一次进行性生活没出血正常吗 第一次同房没流血怎么回事 第一次同房没出血怎么回事 【重磅发布】近五年美赛选题及获奖情况数据分析汇总&amp;美赛关键问题答疑... 2022美赛a题题目 美国大学生数学建模