java - 不知道如何使用 LocalDate
问题描述
我正在学习java,我需要用这个做一个代码:创建一个构造函数,如果日期是星期一,变量total会有10%的折扣。
但是当我在主目录中输入日期时出现错误,并且不知道如何创建本地日期“星期一”的布尔值。有人能帮我吗?
我的代码:
package pedido;
import java.time.DayOfWeek;
import java.time.LocalDate;
public class pedido {
private int numero;
private LocalDate datapedido;
private double quantidade, valor, total;
private boolean sunday;
public pedido(int m, LocalDate j, double p, double k) {
this.numero = m;
this.datapedido = j;
this.quantidade = p;
this.valor = k;
}
public void totalpedido() {
if(sunday == true) {
total = (this.valor * this.quantidade) * 0.9;
System.out.printf("Por hoje ser domingo o total ficou: R$%.2f", total);
}
if(sunday == false) {
total = (this.valor * this.quantidade);
System.out.printf("O total ficou: %.2f", total);
}
}
}
和主要的:
package pedido;
import java.time.DayOfWeek;
import java.time.LocalDate;
public class program {
public static void main(String[] args) {
pedido p1 = new pedido(111, 2021-09-26, 2, 36.50);
p1.totalpedido();
pedido p2 = new pedido(222, 2021-09-23, 1, 13.25);
p2.totalpedido();
}
}
错误:
Multiple markers at this line - The constructor pedido(int, int, int, double) is undefined - The literal 09 of type int is out of range
解决方案
该类LocalDate
有一个getDayOfWeek()
返回DayOfWeek
枚举的方法。所以你可以写
if (datapedido.getDayOfWeek() == DayOfWeek.SUNDAY) {
// it's Sunday
}
要实际创建您的LocalDate
对象,您可以编写
LocalDate.of(2021, 9, 23)
这是一个类型的表达式LocalDate
。
推荐阅读
- azureservicebus - 在持久函数中创建服务总线订阅
- html - html页面上的验证不能使用数据数据注释
- c# - 无法将datagridview转换为xml c#
- javascript - 正则表达式在最后一场比赛后获得异常
- python - requests.exceptions.ConnectionError: ('Connection aborted.', gaierror(8, 'nodename nor servname provided, or not known'))
- swift - Swift clousure 捕获不是通过 for 循环中的引用?
- here-api - 不遵守卡车限制 - 卡车的计算路线错误
- java - 如何修复此代码的“java.sql.SQLException:[Microsoft][ODBC Driver Manager] Invalid descriptor index”
- .net - 使用 If 语句验证字符串值是否在字符串数组中
- azure - Azure EventGrid 事件订阅:错误 400:指定的 XML 在语法上无效