急求一个日期(年、月、日)对应的是星期几。用JAVA编程
发布网友
发布时间:2022-04-25 03:45
我来回答
共3个回答
热心网友
时间:2022-04-25 05:14
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TimeTest {
public static void main(String[] args)
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String inString;
try {
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
while((inString = br.readLine())!=null)
{
Date date = f.parse(inString);
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
}
} catch (Exception e) {
e.printStackTrace();
}
}
输入20071105,返回值为2(Calendar中1-星期天,2-星期一,3-星期二,4-星期三,5-星期四,6-星期五,7-星期六)。
热心网友
时间:2022-04-25 06:32
我的一个源程序和你的问题很接近,你可以参考一下。
代码如下:
/*
*weekDay.java
*假设公元元年一月一日是星期日
*公元X年一月一日是星期几(输入X)
*/
import java.io.*;
public class weekDay{
public static void main(String[] args)throws IOException{
int x=1;
System.out.println("Enter the year,please.");
x=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
//用BufferReader获取用户输入的日期
System.out.print(x+"-1-1 is ");
switch(((x-1)*365+leap(x))%7){//算出之间的总天数,再除以7得到余数,即可得到星期
case 0:System.out.println("Sunday.\n");break;
case 1:System.out.println("Monday.\n");break;
case 2:System.out.println("Tuesday.\n");break;
case 3:System.out.println("Wednesday.\n");break;
case 4:System.out.println("Thursday.\n");break;
case 5:System.out.println("Friday.\n");break;
case 6:System.out.println("Saturday.\n");
}
}
static int leap(int n){
int i,j=0;
for(i=1;i<n;i++)
if((i%4==0&&i%100!=0)||i%400==0)j++;
return(j);
}
}
热心网友
时间:2022-04-25 08:07
有API可以直接操作的。
Calendar 就可以实现你说的功能,
输入日期是字符串,比如"2007-11-02"
import java.util.*;
DateFormat f = SimpleDateFormat("yyyy-MM-dd");
Date d = f.parse(str);//str为输入的日期
Calendar c = Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.DAY_OF_WEEK));