从一年中的总天数中获取日期/月份-java
我有这样一个场景从一年中的总天数中获取日期/月份-java,java,date,Java,Date,我有这样一个场景 "DAY 316 OF YEAR 1998". 如何使用上述输入获取准确的日期和月份?有什么想法吗 在Java中,如何实现这一点?请帮助。我不确定是否有更好的方法,但您可以尝试使用以下代码行: Calendar mycal = new GregorianCalendar(1998, Calendar.JANUARY, 1); int daysInMonth = mycal.getActualMaximum(Calendar.DAY_OF_MONTH); 这将返回您输入的月
"DAY 316 OF YEAR 1998".
如何使用上述输入获取准确的日期和月份?有什么想法吗
在Java中,如何实现这一点?请帮助。我不确定是否有更好的方法,但您可以尝试使用以下代码行:
Calendar mycal = new GregorianCalendar(1998, Calendar.JANUARY, 1);
int daysInMonth = mycal.getActualMaximum(Calendar.DAY_OF_MONTH);
这将返回您输入的月份天数。从1月到12月(增加/更改您的
mycal
),从您的daynumber中减去所有内容,直到得到一个负数。那将是你的月份。使用日历尝试以下操作:-
Date d;
Calendar c= Calendar.getInstance();
c.setTime(date);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
使用RegExps从该字符串中提取所需的数据,并使用Date/Calendar类指向该时刻。我想这是一个家庭作业,所以我不会给你任何代码片段,你必须自己解决它
解析字符串以获得两个数字:年中的日期和年份
使用指定的年份和每年的第一天创建日历
设置一年中的指定日期
从更新的日历中读取日期和月份参数
您应该首先说明年份是1998
,还是2098
,或者其他年份
除此之外,您还可以使用日历API实现您想要的功能。您感兴趣的常数是:
使用创建日历实例。使用上述常量和方法设置年份(1998年或2098年,无论什么),以及年份的日期(316)。根据您现有的条件,您可以通过多种方式实现此目的
比如说。基于您的示例中的字符串
,您可以使用简单的将字符串
解析回日期
对象,这可能是我能想到的最简单的解决方案
try {
String value = "DAY 316 OF YEAR 1998";
SimpleDateFormat sdf = new SimpleDateFormat("'DAY' DDD 'OF YEAR' yyyy");
Date date = sdf.parse(value);
System.out.println(date);
} catch (ParseException exp) {
exp.printStackTrace();
}
一旦有了Date
对象,就可以使用来提取Date
对象的各个部分,或者简单地使用另一个DateFormat
来格式化值
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println("Day of Month = " + cal.get(Calendar.DATE));
// Note, MONTH is 0 indexed...
System.out.println("Month = " + (cal.get(Calendar.MONTH) + 1));
System.out.println("Formatted = " + DateFormat.getDateInstance().format(date));
所以你应该以,类似
Day of Month = 12
Month = 11
Formatted = 12/11/1998
什么是98年?根据什么日历?看起来像是家庭作业。你试过什么?还有,98=1998还是2098?是Java类的API。特别注意顶部的常数(其中一个被命名为DAY\u of\u YEAR
)。您可以使用set()方法构建一个具有给定年份和日期的日历,然后从中读取日期。此问题不应结束。在许多商业和工业场景中,一年中的某一天是一个有效的概念。我们有一系列的副本,从一个日期中获取一年中的某一天,没有一个是作为主题关闭的。这个问题可以通过使用Java内置类的简单直接代码示例来回答。真的吗?因此,给定一年中的某一天,这将起作用;)不,不会的。我假设那个日期是d;将是用户提供的日期!!!虽然我明白你的意思;)“解析字符串以获得两个数字:一年中的日期和一年”。。。为什么?可以解析字符串
-FYI-我假设您的意思是字符串
解析;)