Java 是否有一个库函数可以在变量中为我提供当前日期,并查找自给定日期起经过的天数
我想得到变量的当前日期和时间Java 是否有一个库函数可以在变量中为我提供当前日期,并查找自给定日期起经过的天数,java,date,calendar,Java,Date,Calendar,我想得到变量的当前日期和时间 int d,m,y,h,s; 到目前为止,我已经为Date创建了一个类,它可以让用户输入日期,并检查日期的有效性,但我不确定如何获得从那时起经过的天数以及当前日期 我的上课日期-> import ShortHand.*; public class Date { public static char[] digits={'0','1','2','3','4','5','6','7','8','9'}; int d=0,m=0,y=0; pu
int d,m,y,h,s;
到目前为止,我已经为Date创建了一个类,它可以让用户输入日期,并检查日期的有效性,但我不确定如何获得从那时起经过的天数以及当前日期
我的上课日期->
import ShortHand.*;
public class Date {
public static char[] digits={'0','1','2','3','4','5','6','7','8','9'};
int d=0,m=0,y=0;
public int getD() {
return d;
}
public int getM() {
return m;
}
public int getY() {
return y;
}
public Date(int dd,int mm,int yy)
{
if (checkDate(dd,mm,yy)==false)
throw new IllegalArgumentException("Invalid Date");
this.d=dd;
this.m=mm;
this.y=yy;
}
public static boolean checkDate(int d,int m,int y)
{
if (m<1||d<1||y<1)
return false;
if (m>12)
return false;
if (m==2&&checkLeap(y)&&d>29)
return false;
if (m==2&&!(checkLeap(y))&&m>28)
return false;
if ((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d>31)
return false;
if ((m==4||m==6||m==8||m==11)&&d>30)
return false;
return true;
}
public static boolean checkLeap(int y)
{
if (y%100!=0)
{
if (y%4==0)
return true;
}
else if (y%400==0)
return true;
return false;
}
public static Date takeIn(String msg)throws java.io.IOException
{
int d,m,y;
while(true)
{
boolean f=true;
u.pln(msg+"[dd-mm-yyyy]");
String in=u.iBs();
if (in.length()!=10)
{
u.pln("Please Enter a Valid Date");
continue;
}
for (int i=0;i<10;i++)
{
if (i!=2&&i!=5)
{
if (Arr.check(in.charAt(i), digits)==false)
{
u.pln("Invalid Input");
f=false;
break;
}
}
}
if (f==false)
continue;
String t=in.substring(0,2);
d=Integer.parseInt(t);
t=in.substring(3,5);
m=Integer.parseInt(t);
t=in.substring(6);
y=Integer.parseInt(t);
if (checkDate(d,m,y))
break;
}
return new Date(d,m,y);
}
@Override
public String toString() {
return this.d+"/"+this.m+"/"+this.y;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Date other = (Date) obj;
if (d != other.d) {
return false;
}
if (m != other.m) {
return false;
}
if (y != other.y) {
return false;
}
return true;
}
}
导入速记。*;
公课日期{
公共静态字符[]位={0','1','2','3','4','5','6','7','8','9'};
int d=0,m=0,y=0;
公共int getD(){
返回d;
}
公共int getM(){
返回m;
}
公共int getY(){
返回y;
}
公开日期(国际日、国际月、国际年)
{
如果(检查日期(日、月、年)=假)
抛出新的IllegalArgumentException(“无效日期”);
这个。d=dd;
这个。m=毫米;
这个。y=yy;
}
公共静态布尔校验日期(int d,int m,int y)
{
如果(m28)
返回false;
如果((m==1 | | m==3 | | m==5 | | m==7 | | m==8 | | m==10 | | m==12)和&d>31)
返回false;
如果((m==4 | | m==6 | | m==8 | | m==11)和&d>30)
返回false;
返回true;
}
公共静态布尔checkLeap(int y)
{
如果(y%100!=0)
{
如果(y%4==0)
返回true;
}
如果(y%400==0),则为else
返回true;
返回false;
}
publicstaticdatetakein(stringmsg)抛出java.io.IOException
{
int d,m,y;
while(true)
{
布尔f=真;
u、 印尼国家电力公司(msg+“[dd-mm-yyyy]”);
字符串in=u.iBs();
如果(in.length()!=10)
{
u、 pln(“请输入有效日期”);
继续;
}
对于(inti=0;i,Java 8中有一个类可以实现差异(以及更多):
要将当前日期分配到end
中,请使用以下方法:
Java 8中有一个类可以实现这一区别(还有更多):
要将当前日期分配到end
中,请使用以下方法:
要获取当前日期,可以使用Java8日期时间API
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate));
要获取当前日期,可以使用Java8日期时间API
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate));
u、 pln()是我制作的一个函数,它将给定的字符串打印到控制台,并将其添加到一个字符串中,允许我在executionu.pln()的末尾将整个输出写入一个文件是我制作的一个函数,它将给定的字符串打印到控制台,并将其添加到一个字符串中,允许我在executionVyskovsky kvr000结束时将整个输出写入一个文件。如何使用此类(或任何其他类)获取当前日期您可以使用以下代码以任何格式获取当前日期DateFormat DateFormat=new SimpleDateFormat(“yyyy/MM/dd HH:MM:ss”);date date=new date();System.out.println(DateFormat.format(date));@Pradnyarani这是旧的API,与此答案中建议的完全不同。@AkhandYaduvanshi获取当前日期:LocalDate.now()< /代码>——如果你有选择的话,不要使用Deals/SimuldAtError类。@ PrnnayaRAN:你会考虑给出自己的答案,而不是向注释添加VySkOVSkyKVR000代码吗?我将如何使用这个类(或其他)获得当前日期?您可以使用以下代码以任何格式获取当前日期DateFormat DateFormat=new SimpleDateFormat(“yyyy/MM/dd HH:MM:ss”);date date=new date();System.out.println(DateFormat.format(date))@ PrdnayaNi这是旧的API,它与这个答案中的建议完全不同。@ AkhandYaduvanshi获得当前日期:<代码> LoalDeal.No()(代码)>如果您有选择,不要使用Deals/SimuldAtError类。@ PrnnayaRAN:您会考虑给出自己的答案,而不是向注释添加代码吗?
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate));