java - 如何使用 Locale 和 GregorianCalendar 在 Java 中以给定语言获取工作日名称?
问题描述
我在一个练习中遇到了一些严重的困难,我要编写一个简单的程序,该程序将给出工作日名称(不是 int 值)作为输出。更重要的是,它应该是从当前日期起 90 天后的工作日,并且应该以当地语言(丹麦语)显示。
我是一个初学者,正在寻求关于我应该如何做到这一点的提示。
练习的重要部分是我不能使用比导入的类更多的类(见下面的代码)。
我自己发现的是如何获取当前日期并将其显示为工作日(我知道它从周日开始从 1 开始计数),但我不知道如何强制它以当地语言将此整数显示为工作日名称.
package days01;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.util.Locale;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Calendar;
public class Dates {
public static void main(String[] argv) {
Calendar one = new GregorianCalendar();
int day = one.get(Calendar.DAY_OF_WEEK);
System.out.println(day);
}
}
预期的输出应该是从当前日期开始的单个工作日名称 90。
解决方案
如果您必须使用旧式 API,那么DateFormatSymbols
检索日期名称很有用。
import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
public class DayNameExample {
public static String getDayName(int day, Locale locale) {
DateFormatSymbols symbols = new DateFormatSymbols(locale);
String[] dayNames = symbols.getWeekdays();
return dayNames[day];
}
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
c.add(Calendar.DAY_OF_MONTH, 90);
int dow = c.get(Calendar.DAY_OF_WEEK);
System.out.println (DayNameExample.getDayName(dow, new Locale("da", "DK") ));
}
}
推荐阅读
- visual-studio-2019 - 您可以在没有 BOM 的情况下在 Visual Studio 中创建默认的 sql 文件吗?
- multithreading - 如何理解 Flutter 中的隔离?像线程?像过程?
- github-pages - 部署到 github 页面时,Hugo 站点无法正确显示
- javascript - 点击“a”标签为图像点击 api
- flutter - 使用自定义导航器和全局键进行导航
- node.js - Mock up 在我的机器上运行良好,但在 JEST 框架中的服务器上运行不正常
- reactjs - 有必要在 Redux 中保存所有 API 数据吗?
- sql - Postgres HAVING 喜欢 array_agg 中的任何通配符
- adobe - 集成 sso 后登录 aem 时出现问题
- php - 使用 MySQL 按日期和时间分别选择条目