帮编写 java 获取星期几
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮编写 java 获取星期几相关的知识,希望对你有一定的参考价值。
题目:
编写程序,输出今后10年中,每年元旦分别是星期几?
急用!!谢谢
public class TestWeek
public static void main(String[] args)
//2007-1-1 刚好是星期一,就从这天开始算
Date d = Date.valueOf("2007-1-1");
Date dd = Date.valueOf("2007-1-2");
final long oneDayTime = dd.getTime() - d.getTime(); //得到一天的long值
final long weekTime = oneDayTime * 7; // 一周的long值
int start = 2007; //起始年2007
int end = 10; //要计算的年数,这里可以增加,当前计算今后10年
for (int i = 1; i <= end; i++)
int currYear = start + i; //当前要计算的年
String tt = currYear + "-1-1";//tt:当前要计算的年的元旦日期
Date cuttIime = Date.valueOf(tt);
long count = cuttIime.getTime() - d.getTime(); //得到余下时间的long值,距离2007-1-1
long many = count % weekTime; //余下时间的天数的long值
int w = (int) (many / oneDayTime);//余下的天数
print(currYear,w);//打印日期
public static void print(int y,int i)
String week = null;
switch (i)
case 1:
week = "二"; break;
case 2:
week = "三";break;
case 3:
week = "四";break;
case 4:
week = "五";break;
case 5:
week = "六";break;
case 6:
week = "日";break;
case 0:
week = "一";break;
;
System.out.println(y +" 年的元旦是星期" + week);
结果:未来30年:
2008 年的元旦是星期二
2009 年的元旦是星期四
2010 年的元旦是星期五
2011 年的元旦是星期六
2012 年的元旦是星期日
2013 年的元旦是星期二
2014 年的元旦是星期三
2015 年的元旦是星期四
2016 年的元旦是星期五
2017 年的元旦是星期日
2018 年的元旦是星期一
2019 年的元旦是星期二
2020 年的元旦是星期三
2021 年的元旦是星期五
2022 年的元旦是星期六
2023 年的元旦是星期日
2024 年的元旦是星期一
2025 年的元旦是星期三
2026 年的元旦是星期四
2027 年的元旦是星期五
2028 年的元旦是星期六
2029 年的元旦是星期一
2030 年的元旦是星期二
2031 年的元旦是星期三
2032 年的元旦是星期四
2033 年的元旦是星期六
2034 年的元旦是星期日
2035 年的元旦是星期一
2036 年的元旦是星期二
2037 年的元旦是星期四 参考技术A public static void displayDayOfWeek(Date date)
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
switch(dayOfWeek)
case 1:System.out.println("星期日!");break;
case 2:System.out.println("星期一!");break;
case 3:System.out.println("星期二!");break;
case 4:System.out.println("星期三!");break;
case 5:System.out.println("星期四!");break;
case 6:System.out.println("星期五!");break;
case 7:System.out.println("星期六!");break;
参考技术B import java.util.*;
public class WhatDay
public static void main(String[] args)
int startYear = 0;
try
startYear = Integer.parseInt(args[0]);
catch(NumberFormatException e)
System.out.println("please start the program with a valid int value.");
Date date ;
for(int i=startYear;i<startYear+10;i++)
date = new Date(i,1,1);
System.out.print(i+" 年1月1日 是 ");
convert(date.getDay());
public static void convert(int value)
switch(value)
case 0: System.out.println("星期日。");break;
case 1: System.out.println("星期一。");break;
case 2: System.out.println("星期二。");break;
case 3: System.out.println("星期三。");break;
case 4: System.out.println("星期四。");break;
case 5: System.out.println("星期五。");break;
case 6: System.out.println("星期六。");break;
参考技术C /**
*
* @param year 年份
* @return
*/
public static boolean isLoopYear(int year)
return ((year%4==0 && year%100!=0)||(year%400==0));
/**
*
* @param year 年份
* @return 获得当前日期的第一天是星期几
*/
public static int getWeek(int year,int month)
long days=0,sum=0;
final int MAX=366,MIN=365,Day_OF_WEEK=7;
for(int y=1;y<year;y++)
days=isLoopYear(y)?MAX:MIN;
sum+=days;
for(int mon=1;mon<month;mon++)
if(mon!=2)
int dy=isBig(mon)?31:30;
sum+=dy;
else if(mon==2)
sum+=isLoopYear(year)?29:28;
int week=(int) ((sum+1)%Day_OF_WEEK);
return week;
/**
*
* @param month月份
* 判断是大月还是小月
*/
public static boolean isBig(int month)
int []mon=1,3,5,7,8,10,12;
for(int i=0,size=mon.length,y=size-1;i<=size-4;i++,y--)
if(mon[i]==month||mon[y]==month)
return true;
return false;
public static int getHowDay(int currMonth,int year)
if(currMonth==2)
if(isLoopYear(year))
return 29;
else
return 28;
return isBig(currMonth)?31:30;
public static void main(final String[] args)
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int year=sc.nextInt();
System.out.println("请输入月份");
int month=sc.nextInt();
//cal.set(2012, 9, 1);
int howWeek=getWeek(year, month);
System.out.println(howWeek);
String []weeks="日","一","二","三","四","五","六";
for(String s:weeks)
System.out.print(s+" ");
System.out.println();
int howDays=getHowDay(month,year);
for(int spc=0;spc<howWeek*3-2;spc++)
System.out.print(" ");
for(int day=1;day<=howDays;day++)
System.out.print(day+" ");
if((howWeek+1)%7==0)
System.out.println();
howWeek++;
System.out.println( );
for(String s:weeks)
System.out.print(s+" ");
java获取某年某月某日是星期几(极简方法)
package com.ttest2;
class test {
public int GetWeek(int y, int m, int d) {
if (m < 3) {
m += 12;
--y;
}
int w = (d + 1 + 2 * m + 3 * (m + 1) / 5 + y + (y >> 2) - y / 100 + y / 400) % 7;
return w;
}
}
public class Demo2 {
public static void main(String[] args) {
test t = new test();
System.out.println(t.GetWeek(2016, 6, 3));
}
}
以上是关于帮编写 java 获取星期几的主要内容,如果未能解决你的问题,请参考以下文章