我有一个关于方法的赋值,和2个变量的Date
类型:
\u借用日期
(也与日期
方法相关)我还有一个int MAX_DAYS=30
我需要设置一个借用日期
,然后接受一个归还日期
,如果归还日期的天数大于30(最长天数
),与借用日期相比,我应该输出true。
public class Book {
private String _title;
private String _author;
private int _yearPublished;
private int _noOfPages;
private boolean _borrowed;
private String _studentName;
private Date _borrowedDate;
private Date _returnDate;
final int MAX_DAYS = 30;
final int FINE = 5;
final int MIN_YEAR =1800;
final int MAX_YEAR = 2018;
final int DEFAULT_YEAR = 2000;
int d1;
int days;
public Book( String title, String author, int yearPublished, int noOfPages)
{
if (yearPublished <MIN_YEAR || yearPublished >MAX_YEAR){
_yearPublished = DEFAULT_YEAR;
_title = title;
_author = author;
_noOfPages = noOfPages;}
else{
_title = title;
_author = author;
_yearPublished = yearPublished;
_noOfPages = noOfPages;
}
}
public Book ( Book other) {
_title = other._title;
_author = other._author;
_yearPublished = other._yearPublished;
_noOfPages = other._noOfPages;
_borrowed = other._borrowed;
_studentName = other._studentName;
_borrowedDate = other._borrowedDate;
_returnDate = other._returnDate;
}
public boolean equal(Book compare){
return ((_title == compare._title)&&(_author==compare._author)&&(_yearPublished==compare._yearPublished)
&&(_noOfPages==compare._noOfPages)&&(_borrowed==compare._borrowed)&&(_studentName==compare._studentName)
&&(_borrowedDate==compare._borrowedDate)&&(_returnDate==compare._returnDate));
}
boolean olderBook(Book other){
return other._yearPublished > _yearPublished;
}
public int getYear(){
return _yearPublished;
}
public int getPages(){
return _noOfPages;
}
public String getTitle(){
return _title;
}
public String getAuthor(){
return _author;
}
public boolean getBorrowed(){
return _borrowed;
}
public String toString(){
return "Title:"+_title+"Author:"+_author+ "Year:"+_yearPublished+","+_noOfPages+"pages";
}
private int calculateDate(int day, int month,int year){
if(month<3){
year--;
month += 12;
}
return 365*year+year/4-year/100+year/400+((month+1)*306)/10+(day-62);
}
public void borrowBook(String name, Date d){
_studentName = name;
_borrowedDate = new Date(d);
_borrowed = true;
}
public boolean returnBook(Date d){
_returnDate = new Date(d);
_studentName = null;
return (_returnDate.after(_borrowedDate));
}
public int howLongBorrowed(Date d){
return 5;
}
public void setYear(int n){
if(n > MAX_YEAR || n<MIN_YEAR){
_yearPublished = _yearPublished;
}
else
_yearPublished = n;
}
public Date getBorrowedDate(){
return _borrowedDate;
}
public String getStudentName(){
return _studentName;
}
public Date getReturnDate(){
return _returnDate;
}
public void setTitle(String s){
_title = s;
}
public void setAuthor(String s){
_author = s;
}
public void setPages(int n){
_noOfPages = n;
}
public boolean sameAuthor(Book other){
return other._author.equals(_author);
}
}
代码还没有完成,只是在这个特定的问题上遇到了麻烦。我试过明显的
。之后
可以工作,但我需要在30天后具体完成,仅此而已。
如果您使用的是Java8或更高版本,最好使用LocalDate
而不是Java。util。日期
:
LocalDate today = LocalDate.now();
LocalDate later = today.plusDays(30);
将LocalDate
对象与方法isBefore
、isEqual
和isAfter
进行比较。
如果您使用的是早期版本,或者您只是出于某种原因更喜欢使用Date,您需要一个日历
实例来完成此操作:
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, 30);
问题内容: 我觉得很有趣,Java(或java.util库)没有内置函数来计算日期差。我想从另一个减去一个日期,以获得它们之间的经过时间。做这个的最好方式是什么? 我知道简单的方法是将时间差以毫秒为单位,然后将其转换为天。但是,我想知道这是否在所有情况下都有效(带夏令时等)。 问题答案: 如果您关注开放源代码,那么Java并不会丢失太多:尝试Joda-Time。
我试图创建一个小应用程序来保存许可证数据,我允许用户输入赎回日期和许可证长度。 我想创建一天的剩余字段,用户可以在其中查看他们在赎回新许可证之前还有多少天。 我用过jxDatepicker 并且有三个组合框,用户可以在其中选择许可证可用的年、月和日数 编辑 我想我让一些人很困惑。或者我不明白这怎么能解决我的问题。我会试着更详细地描述 脚本 用户可以使用该应用程序记录他们的许可证,他们输入许可证兑换
问题内容: 我试图找出表中某些字段之间的时间。但是由于我正在使用Postgresql :(( 我无法使用DATEDIFF函数。我在网上找不到任何清晰的指南/教程,这些指南/教程显示了如何在Postgres中执行类似的操作,因此我需要做同样的事情的帮助但在Postgres 我假设如果我使用支持DATEDIFF函数的RDBMS,则此查询将起作用,因此,基本上我的问题是如何更改它,以便它使用Postgr
问题内容: 在我的代码中,日期之间的差异是错误的,因为它应该是38天而不是8天。我该如何解决? 问题答案: 问题出在变量中。月以Capital M表示。 尝试更改为: 有关更多信息,请参见此javadoc。 编辑: 这是代码,如果您想以注释的方式打印差异: 希望对您有所帮助!
问题内容: 我想以小时/分钟/秒为单位计算两个日期之间的差异。 我的代码在这里有一个小问题: 这应该产生: 但是我得到这个结果: 有人可以在这里看到我在做什么错吗? 问题答案: 尝试 注意:这假定diff是非负数。
我想验证用户输入的日期是否有效,格式是否正确。我使用这个块来检查用户的输入,但是当我输入一个无效的日期时,打印语句会给我奇怪的输出。 当是时,它打印