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

在JAVA中如何用数组实现把日期转换为星期几2

发布网友 发布时间:2023-09-24 20:14

我来回答

5个回答

热心网友 时间:2024-12-13 10:05

这个问题不是很难,有关判断日期是否合法,其实已经有现成的包可以用,没有必要自己写方法来实现,代码如下:

import java.util.*;

public class WeekTest {
private String[][] javadays=new String[12][31];

public WeekTest(){
String[] weeks=new String[]{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
for(int i=0;i<12;i++){
for(int j=0;j<31;j++){
GregorianCalendar gc=new GregorianCalendar();
gc.setLenient(false);
try{
gc.set(2008,i,j+1);
int week=gc.get(Calendar.DAY_OF_WEEK);
javadays[i][j]=new String(weeks[week-1]);
}catch(Exception e){}
}
}
}

public void randomPrint(){
HashSet<Integer> hs=new HashSet<Integer>();
while(true){
if(hs.size()==10)
break;
int day=((int)(Math.random()*1000))%366;
if(hs.contains(new Integer(day)))
continue;
hs.add(new Integer(day));
}
for(Integer day:hs){
GregorianCalendar gc=new GregorianCalendar(2008,0,1);
gc.add(Calendar.DATE,day.intValue());
int month=gc.get(Calendar.MONTH)+1;
int date=gc.get(Calendar.DAY_OF_MONTH);
System.out.println("2008年"+(month<10?"0"+month:month)+"月"+(date<10?"0"+date:date)+"日\t"+javadays[month-1][date-1]);
}
}

public void replaceAll(){
String[][] weekStr=new String[2][];
weekStr[0]=new String[]{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
weekStr[1]=new String[]{"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
for(int i=0;i<12;i++){
for(int j=0;j<31;j++){
for(int k=0;k<7;k++){
if(javadays[i][j]!=null && javadays[i][j].equals(weekStr[0][k]))
javadays[i][j]=new String(weekStr[1][k]);
}
}
}
}

public static void main(String[] args) {
WeekTest wt=new WeekTest();
wt.randomPrint();
wt.replaceAll();
wt.randomPrint();
}

}

热心网友 时间:2024-12-13 10:05

import java.util.*;
public class WeekDay {
Calendar date = Calendar.getInstance();
private int getMaxDate(int moth){
moth = moth -1;
if(moth > 12 || moth < 0){
System.out.println("输入月份错误");

}
int maxDate = 0;
date.set(Calendar.MONTH, moth);
date.set(Calendar.DATE, 1);
date.roll(Calendar.DATE, -1);
maxDate = date.get(Calendar.DATE);
return maxDate;
}
private String getDay(int d){
if(d < 1 || d > 31){
return "输入日期错误";
}
date.set(Calendar.DATE, d);
int i = date.get(Calendar.DAY_OF_WEEK_IN_MONTH);
switch(i){
case 1:return "星期一";
case 2:return "星期二";
case 3:return "星期三";
case 4:return "星期四";
case 5:return "星期五";
case 6:return "星期六";
case 0:return "星期七";
}
return null;
}
private String[][] getJavaDays(){
String [][] javaDays= new String[12][31];
for(int i=0;i<12;i++){
for(int j=1;j<getMaxDate(i+1);j++){
javaDays[i][j]=getDay(j);
}
}

return javaDays;
}
private String replaceAll(String str){
if(str.equals("星期一")){
return "Monday";
}else if(str.equals("星期二")){
return "Tuesday ";
}
else if(str.equals("星期三")){
return "Wednesday";
}
else if(str.equals("星期四")){
return "Thursday";
}
else if(str.equals("星期五")){
return "Friday";
}
else if(str.equals("星期六")){
return "Saturday ";
}
else if(str.equals("星期七")){
return "Sunday";
}
return "输入错误";
}
public String getDayNow(int i,int j){
if(i < 0 || j< 1 || i > 12){
return "输入月份或者日期错误";
}else if(j > getMaxDate(i)){

return "输入日期错误";
}
String [][] javaDays=getJavaDays();
return javaDays[i][j];
}
public static void main(String args[]){
WeekDay wd = new WeekDay();
System.out.println("当前星期:"+wd.replaceAll(wd.getDayNow(7, 24)));

}
}

热心网友 时间:2024-12-13 10:06

public class JavaDay {
private static final byte MONDAY = 1;
private static final byte TUESDAY = 2;
private static final byte WEDNESDAY = 3;
private static final byte THURSDAY = 4;
private static final byte FRIDAY = 5;
private static final byte SATURDAY = 6;
private static final byte SUNDAY = 7;
private static final int YEAR = 2008;
private String[][] javadays = new String[12][];

/**
* 计算星期
*/
public void calculateWeek() {
for (int i = 0; i < javadays.length; i++) {
if (i == 1) {
javadays[1] = new String[29];
} else if (i <= 6 && i % 2 == 0 || i >= 7 && i % 2 == 1)
javadays[i] = new String[31];
else
javadays[i] = new String[30];
}
for (int i = 0; i < javadays.length; i++) {
String[] weeks = javadays[i];
for (int j = 0; j < weeks.length; j++)
weeks[j] = getWeek(YEAR, i, j);
weeks = null;
}
}

/**
* 利用公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7计算几月几号是星期几
*/
private String getWeek(int year, int month, int day) {
month++;
day++;
if (month <= 2) {
month += 12;
year--;
}
int week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4
- year / 100 + year / 400) % 7;
week++;
String weekString = null;
switch (week) {
case MONDAY:
weekString = "星期一";
break;
case TUESDAY:
weekString = "星期二";
break;
case WEDNESDAY:
weekString = "星期三";
break;
case THURSDAY:
weekString = "星期四";
break;
case FRIDAY:
weekString = "星期五";
break;
case SATURDAY:
weekString = "星期六";
break;
case SUNDAY:
weekString = "星期日";
break;
}
return weekString;
}

public void replaceAll() {
for (int i = 0; i < javadays.length; i++) {
String[] weeks = javadays[i];
for (int j = 0; j < weeks.length; j++) {
if (weeks[j].equals("星期一"))
weeks[j] = "Monday";
else if (weeks[j].equals("星期二"))
weeks[j] = "Tuesday";
else if (weeks[j].equals("星期三"))
weeks[j] = "Wednesday";
else if (weeks[j].equals("星期四"))
weeks[j] = "Thursday";
else if (weeks[j].equals("星期五"))
weeks[j] = "Friday";
else if (weeks[j].equals("星期六"))
weeks[j] = "Saturday";
else if (weeks[j].equals("星期日"))
weeks[j] = "Sunday";
}
weeks = null;
}
}

public void printWeeks() {
for (int i = 0; i < javadays.length; i++) {
String[] weeks = javadays[i];
System.out.println((i + 1) + "月份:");
for (int j = 0; j < weeks.length; j++)
System.out.print(weeks[j] + "\t");
System.out.println();
weeks = null;
}
}
}

public class Test {

public static void main(String[] args) {
JavaDay javaday = new JavaDay();
javaday.calculateWeek();
javaday.printWeeks();
javaday.replaceAll();
javaday.printWeeks();
}

}

热心网友 时间:2024-12-13 10:06

是不是 你们明天考试的题呀!

你这个日期只是2008年的是吧

热心网友 时间:2024-12-13 10:07

稍等 这就给你写去
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重磅|8月1日起 报关单的填法将重大改变 进出口权需要报关员么 宝宝被莫名的虫子咬了又红又肿又痒怎么? 北京疫情个为数是什么意思? 在做刀伤的手术时没有接上神经是医院的过错吗? 手术室收费项目有哪些 手术室的秘密:一台10万的手术,主刀医生拿多少?答案颠覆你的认知 阿里巴巴中修改产品信息只修改一小部分行吗?谢谢 可否给我一个阿里巴巴的序列号~谢谢了 阿里巴巴店铺产品搜索框代码谁有呢,给我发一下谢谢了! 可数名词和不可数名词有什么区别吗? 高中生买笔记本有什么要求吗? 微信账号和是一样吗 就是微信账号吗 华为体验店是直营店吗 ...梦到我们学校和日本人打起来了,两个黑人帮我们 一部90年代的 破案电视剧橱柜里藏尸1 用一会儿……一会儿……一会儿……像……像……像……造句 急!...15 小蝌蚪在水中快活的游来游去,像什么?181 钉子断了一截在房间门前的地板里,风水上有影响吗 小蝌蚪在水里游来游去像什么?47 求未婚不应该同居的观点!~ 地板安装需要注意什么?11 甲和乙在环形跑道起点同时开始跑步,反向跑,第一次相遇要15分钟,同向... 德阳周边好的农家乐在哪里? 内置电子取景器 索尼RX100 III评测 没带卡可以往银行里存钱吗?260 怎么取消新申请的?1 铺木地板 下面 放东西好 还是不放东西好!5 一个数的3倍比它多2.8,这个数是多少1 营口经济技术开发区熊岳高中现任校长是谁啊 ?听说刚换校长,是谁啊。 地板 横竖铺装有什么讲究吗?46 求:篮球技术中,跳步,挑篮,急停跳投,及各种高难传球技术详解...35 2021陕西职业高中排名大全? 如何用向量表示三个向量相加为0? 一年只能改一次怎么改第二次 有一部古代探案的电视剧其中剧情是根据苍蝇找到创下地板中的尸体... 电话如何线上过户? 嘴唇被蚊子咬后用牙膏敷了第二天就肿起来了还起了黄色的小泡怎么回事... 索尼RX100M5这么小的相机支持4K视频拍摄吗? 索尼RX100M5能拍4K视频吗?画质怎么样? 索尼RX100M5拍摄超慢动作影像如何? 小张和小丽在一条长四百米的环形跑道上跑步,两人同时从同一地点出发反向... 编写Java程序。当以年月日的格式输入一个日期时,输出该年是...1 实木地板铺的时候钉钉子好还是不钉好1 一部大陆警匪片电视剧里面有把人杀了放冰箱冻上,然后碎尸的叫什...10 一部90年代的破案电视剧 记得属于单元剧 好几个案件组成一部...3 LOL里如何克不祥之刃 第五届夏青杯延安赛区决赛和颁奖图片哪里能看到啊? lol不祥之刃大招