Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从一年中的总天数中获取日期/月份-java_Java_Date - Fatal编程技术网

从一年中的总天数中获取日期/月份-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-我假设您的意思是
    字符串
    解析;)