龙空技术网

获取当前日期和指定日期之间的时间差

码农唐小生 103

前言:

现时你们对“java获取指定日期内所有的日期和时间”大约比较重视,各位老铁们都需要知道一些“java获取指定日期内所有的日期和时间”的相关内容。那么小编在网摘上汇集了一些关于“java获取指定日期内所有的日期和时间””的相关文章,希望我们能喜欢,看官们一起来了解一下吧!

/**

* 获取当前时间距离传入时间的间隔

* 返回时间间隔

* @return返回间隔天数

*/

public static String getStringTadayNumber(String StrDate) {

int num=0;

// String StrDate="2022-09-18";

String StrDateY=StrDate.split("-")[0];//指定年

String StrDateM=StrDate.split("-")[1];//指定月

String StrDateD=StrDate.split("-")[2];//指定日

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

String dateString = formatter.format(currentTime);

String NowDateY=dateString.split("-")[0];//现在年

String NowDateM=dateString.split("-")[1];//现在月

String NowDateD=dateString.split("-")[2];//现在日

//判断年是否相同

if(NowDateY.equals(StrDateY)) {

//判断月是否相同

if(NowDateM.equals(StrDateM)) {

//判断天是否相同

if(NowDateD.equals(StrDateD)) {

num=0;

}else{

if(Integer.parseInt(NowDateD)>Integer.parseInt(StrDateD)) {

num=Integer.parseInt(NowDateD)-Integer.parseInt(StrDateD);

}else{

num=Integer.parseInt(StrDateD)-Integer.parseInt(NowDateD);

}

}

}else {

int x=Integer.parseInt(NowDateM);

int y=Integer.parseInt(StrDateM);

if(x>y) {

while(y<=x) {

num=num+getIntTadaysNum(StrDateY,y);

y++;

}

num=num-Integer.parseInt(StrDateD)-(getIntTadaysNum(NowDateY,x)-Integer.parseInt(NowDateD));

}else {

while(x<=y) {

num=num+getIntTadaysNum(NowDateY,x);

x++;

}

num=num-Integer.parseInt(NowDateD)-(getIntTadaysNum(StrDateY,y)-Integer.parseInt(StrDateD));

}

}

}else {

int a=Integer.parseInt(NowDateY);

int b=Integer.parseInt(StrDateY);

int x=Integer.parseInt(NowDateM);

int y=Integer.parseInt(StrDateM);

int c=Integer.parseInt(NowDateD);

int d=Integer.parseInt(StrDateD);

if(a>b) {

while(b<=a) {

num=num+getIntYearNum(b);

b++;

}

int m=0,n=1;

while(n<y) {

m=m+getIntTadaysNum(StrDateM,n);

n++;

}

m=m+d;

int p=0,q=1;

while(q<x) {

p=p+getIntTadaysNum(NowDateM,q);

q++;

}

p=p+c;

num=num-m-(getIntYearNum(a)-p);

}else {

while(a<=b) {

num=num+getIntYearNum(a);

a++;

}

int m=0,n=1;

while(n<x) {

m=m+getIntTadaysNum(NowDateM,n);

n++;

}

m=m+d;

int p=0,q=1;

while(q<y) {

p=p+getIntTadaysNum(StrDateM,q);

q++;

}

p=p+c;

num=num-m-(getIntYearNum(a)-p);

}

}

return num+"";

}

public static int getIntTadaysNum(String DateY,int DateM) {

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

return 31;

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

return 30;

}else {

int y=Integer.parseInt(DateY);

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

return 29;

}else {

return 28;

}

}

}

public static int getIntYearNum(int DateY) {

int y=DateY;

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

return 366;

}else {

return 365;

}

}

public static int getIntTadaysNum(String DateY,int DateM) {

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

return 31;

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

return 30;

}else {

int y=Integer.parseInt(DateY);

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

return 29;

}else {

return 28;

}

}

}

public static int getIntYearNum(int DateY) {

int y=DateY;

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

return 366;

}else {

return 365;

}

}

public static int getIntTadaysNum(String DateY,int DateM) {

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

return 31;

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

return 30;

}else {

int y=Integer.parseInt(DateY);

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

return 29;

}else {

return 28;

}

}

}

public static int getIntYearNum(int DateY) {

int y=DateY;

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

return 366;

}else {

return 365;

}

}

程序员作为社会的暗涌推动力,可能一直是一个被人们搬运工来看待,可我觉得在这个科技智能的社会,是由很多的程序员在背后堆积起来,程序员才是社会的主动力,哈哈!

欢迎各位具有求知欲的初学者前来讨论哈

标签: #java获取指定日期内所有的日期和时间