「java获取星期函数」java获取今天是星期几
今天给各位分享java获取星期函数的知识,其中也会对java获取今天是星期几进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中如何根据某一周(比如22周)获取这一周是几月几号,星期几。有这样的函数方法吗?
- 2、JAVA代码, 找星期几,高分求
- 3、java中的getday
- 4、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获取星期函数的信息别忘了在本站进行查找喔。
发布于:2022-11-29,除非注明,否则均为
原创文章,转载请注明出处。