「java获取星期函数」java获取今天是星期几

博主:adminadmin 2022-11-29 09:04:05 44

今天给各位分享java获取星期函数的知识,其中也会对java获取今天是星期几进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中如何根据某一周(比如22周)获取这一周是几月几号,星期几。有这样的函数方法吗?

我的程序是输入某年某周,输出这一周的开始日期和结束时期,不知是否符合你的需要。至少Java是不直接提供这种方法的。

import java.util.*;

public class Test31 {

public static void main(String[] args) {

int year, year1, year2, month1, month2, day1, day2, week, sum = 0;

int[] days = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int i;

Scanner scan = new Scanner(System.in);

System.out.print("年:");

year = scan.nextInt();

System.out.print("周次:");

week = scan.nextInt();

if (year 0) {

System.out.println("年份错误,必须大于等于0");

return;

}

if (week 1 || week 54) {

System.out.println("周次错误,必须位于 1 .. 53 之间");

return;

}

sum += 7 * (week - 1);

//修正总天数

Calendar c = Calendar.getInstance();

c.set(year, 0, 1);

switch (c.get(Calendar.DAY_OF_WEEK))

{

case Calendar.TUESDAY:

{

sum -= 1;

break;

}

case Calendar.WEDNESDAY:

{

sum -= 2;

break;

}

case Calendar.THURSDAY:

{

sum -= 3;

break;

}

case Calendar.FRIDAY:

{

sum -= 4;

break;

}

case Calendar.SATURDAY:

{

sum -= 5;

break;

}

case Calendar.SUNDAY:

{

sum -= 6;

break;

}

default:

break;

}

if ((year % 400 == 0) || (year % 4 == 0 year % 100 != 0)) {

days[1] = 29;

}

for (i = 0; i days.length; i++) {

if (sum = days[i]) {

sum -= days[i];

}

else {

break;

}

}

year1 = year;

month1= i + 1;

day1 = sum + 1;

//修改开始日期

if (day1 1) {

day1 += days[11];

month1 = 12;

year1--;

}

year2 = year1;

month2 = month1;

day2 = day1 + 6;

if (day2 days[month1 - 1]) {

day2 -= days[month1 - 1];

month2++;

if (month2 12) {

month2 = 1;

year2++;

}

}

System.out.printf("%d年第%d周 : %d年%d月%d日 ~ %d年%d月%d日", year, week, year1, month1, day1, year2, month2, day2);

}

}

输出测试:

年:2011

周次:22

2011年第22周 : 2011年5月23日 ~ 2011年5月29日

年:2011

周次:1

2011年第1周 : 2010年12月27日 ~ 2011年1月2日

这是从星期一至星期日。

也可以这样:

public static void main(String[] args){

Scanner scan = new Scanner(System.in);

System.out.print("年:");

int year = scan.nextInt();

System.out.print("周:");

int week = scan.nextInt();

Calendar c = Calendar.getInstance();

c.set(Calendar.DAY_OF_WEEK, 1);

c.set(Calendar.WEEK_OF_YEAR, week);

//该周第一天(星期日)所在的日期

int y1 = c.get(Calendar.YEAR);

int m1 = c.get(Calendar.MONTH) + 1;

int d1 = c.get(Calendar.DATE);

c.add(Calendar.DATE, 6);

//该周最后一天(星期六)所在的日期

int y2 = c.get(Calendar.YEAR);

int m2 = c.get(Calendar.MONTH) + 1;

int d2 = c.get(Calendar.DATE);

System.out.printf("%d年第%d周:%d-%d-%d ~ %d-%d-%d", year, week, y1, m1, d1, y2, m2, d2);

}

这是从星期日开始,如:

年:2011

周:22

2011年第22周:2011-5-22 ~ 2011-5-28

JAVA代码, 找星期几,高分求

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

public class DateDome {

public DateDome(){

}

//年大于等于0

public boolean isYear(int year){

boolean suc=false;

if(year0)return suc;

else if(year=0)suc=true;

return suc;

}

//判断月数1-12月

public boolean isMonth(int month){

boolean suc=false;

if(month0||month12)return false;

else suc=true;

return suc;

}

//判断天数1-31号

public boolean isDay(int day){

boolean suc=false;

if(day=0||day31)return suc;

else suc=true;

return suc;

}

//是否为闰年

public boolean isRunNian(int year){

boolean suc=false;

if(year=0){

if(year%400==0||(year%4==0year%100!=0)){

suc=true;

}

}

return suc;

}

//判断合法年月日

public boolean isInvaildate(int year,int month, int day){

boolean suc=false;

if(isYear(year)isMonth(month)isDay(day)){

switch(month){

case 1:

suc=true;

break;

case 2:

if(isRunNian(year)day=29){

suc=true;

}else if(day=28){

suc=true;

}

break;

case 3:

suc=true;

break;

case 4:

if(day=30)suc=true;

break;

case 5:

suc=true;

break;

case 6:

if(day=30)suc=true;

break;

case 7:

suc=true;

break;

case 8:

suc=true;

break;

case 9:

if(day=30)suc=true;

break;

case 10:

suc=true;

break;

case 11:

if(day=30)suc=true;

break;

case 12:

suc=true;

break;

}

}

return suc;

}

//根据日期得到天数

public int getDaysByDate(int year,int month,int day){

int days=0;

if(isInvaildate(year,month,day)){

for(int i=0;iyear;i++){

if(isRunNian(i)){

days+=366;

}else{

days+=365;

}

}

for(int i=1;imonth;i++){

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){

days+=31;

}else if(i==4||i==6||i==9||i==11){

days+=30;

}else if(i==2){

if(isRunNian(year)){

days+=29;

}else{

days+=28;

}

}

}

days+=day-1;

return days;

}else{

System.out.println("处理有非法日期!!!");

return -1;

}

}

//根据天数得到日期数int[]由,年、月、日组成的数组

public int[] getDateByDays(int days){

int das=0;//预计的天数

int y=0,m=1,d=1;//0年1月1号

int[] date=new int[3];

boolean suc=true;

int temp=0;

if(days0){

System.out.println("请输入合法天数!!!");

return new int[]{0,0,0};

}

while(suc){

if(isRunNian(y)){

temp=366;

}else{

temp=365;

}

das+=temp;

if(dasdays){

y++;

}else{

das-=temp;

break;

}

}

while(suc){

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){

temp=31;

}else if(m==4||m==6||m==9||m==11){

temp=30;

}else if(m==2){

if(isRunNian(y)){

temp=29;

}else{

temp=28;

}

}

das+=temp;

if(dasdays){

m++;

}else{

das-=temp;

break;

}

}

d=days-das+1;

date[0]=y;

date[1]=m;

date[2]=d;

return date;

}

//得到多少天前或后合法日期

public int[] addORsubDay(int dd,int year,int month,int day){

int days=getDaysByDate(year,month,day);

if(days=0){

days+=dd;

if(days0){

return getDateByDays(days);

}else{

System.out.println("处理日期不能小于0年1月1号");

return new int[]{0,0,0};//代表无效日期

}

}else{

System.out.println("处理日期不能小于0年1月1号");

return new int[]{0,0,0};//年,月,日

}

}

//得到两个日期相距天数

public int TwoDate(int[] date1,int[] date2){

int d=-1;

if(isInvaildate(date1[0],date1[1],date1[2])isInvaildate(date2[0],date2[1],date2[2])){

int days1=getDaysByDate(date1[0],date1[1],date1[2]);

int days2=getDaysByDate(date2[0],date2[1],date2[2]);

d=days1-days2;

return d=0?d:-d;

}else

{

System.out.println("处理有非法日期!!!");

return d;

}

}

/*

* 输入日期是否为有效日期

*/

private boolean isInvaildate1(String d){

int year=0;

int month=0;

int day=0;

boolean success=false;

try{

year=Integer.parseInt(d.substring(0,4));

month=Integer.parseInt(d.substring(4,6));

day=Integer.parseInt(d.substring(6,8));

success=isInvaildate(year, month, day);

return success;

}catch(Exception e){

return success;

}

}

/*

* 得到输入日期是星期几

*/

public String day_of_week(String d){

String year=null;

String month=null;

String day=null;

SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");

boolean suc=false;

if((suc=isInvaildate1(d))==false){

return d+"日期错误";

}

try {

java.util.Date date=format.parse(d);

Calendar c=java.util.Calendar.getInstance();

c.setTime(date);

int i=0;

switch(c.get(c.DAY_OF_WEEK)){

case 1:return d+"是星期天";

case 2:return d+"是星期一";

case 3:return d+"是星期二";

case 4:return d+"是星期三";

case 5:return d+"是星期四";

case 6:return d+"是星期五";

case 7:return d+"是星期六";

default:return d+"日期错误";

}

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return d+"日期错误";

}

}

public static void main(String[] args){

DateDome dome=new DateDome();

System.out.println(dome.day_of_week("20000240"));

System.out.println(dome.day_of_week("20090306"));

System.out.println(dome.day_of_week("20090229"));

System.out.println(dome.day_of_week("20000229"));

}

}

java中的getday

create.getDay(),

比如create的参数值是‘2019-06-11 12:10:03’

getDay()方法就是获得这一天的星期码(int类型的),从星期一到星期日的星期码是1,2,3,4,5,6,0。其功能就是用于获取传入日期的星期码的;

比如:

create的参数值是‘2019-06-11 12:10:03’,那么create.getDay()得到的值就是‘2’

知道了这个再怎么用就会显而易见了,setDay()方法和getDay()方法完全就是set、get的关系,不在赘述

java中如何求出某一年第一天是星期几

你先取某一年的第一天为起点。比如2012年第一天是星期日。

在判断这年是否是闰年,(2012年是闰年):

闰年的判断函数:

boolean isLeapYear( int year )

{

return (0==year%4) || (0==year%100 0==year%400 );

}

若是闰年,该年有366天,则星期数(如果7代表星期天)加减366%7后模7;

若是平年,该年有365天,则星期数加减365%7模7。

如果是算未来(对2012来说)则加(一年的天数)%7后模7,反之则减(一年的天数)%7后模7。

比如2013年第一天是星期 [ 7+(366)%7]%7;2011年第一天是星期 [7-(365)%7]%7;

java获取星期函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取今天是星期几、java获取星期函数的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。