从文本文件中提取数据以制作公历日历



我在网上上java课,正在努力完成一项作业,我不知道如何做我的老师特别问我们:
创建一个名为dteDate的GregorianCalendar对象。对于年、月、日、时、分和秒,使用parseInt()将这些数字从文件中提取到单独的整数变量中。然后创建GregorianCalendar对象。最后,使用SimpleDateFormat创建一个名为strDate的字符串,其中包含"April 28, 2013 12:41"。换句话说,我希望看到您理解如何从文件中提取一系列字符串,将它们转换为整数,创建GregorianCalendar对象,然后将其转换回格式化字符串。当然这不是最有效的方法,但它会测试你创建日期变量的能力。"
我不知道如何从文本文件中提取特定的行,只是如何提取整个东西,并感谢指导我的程序看起来像这样。

import java.io.*;
import java.nio.file.*;
import java.util.GregorianCalendar;
public class a19010
{
public static void main(String[] args) 
  {
    Path objPath = Paths.get("dirsize.txt");  
    if (Files.exists(objPath))
    {
        File objFile = objPath.toFile();
        try(BufferedReader in = new BufferedReader(
                                new FileReader(objFile)))
        {
            String line = in.readLine();
            while(line != null)
            {
                System.out.println(line);
                line = in.readLine();
            }
        }    
      catch (IOException e)
      {
        System.out.println(e);  
      }
    }
    else
    {
     System.out.println(
             objPath.toAbsolutePath() + " doesn't exists");   
    }   
    GregorianCalendar dteDate = new GregorianCalendar();
  }
}

这将整个文本文件打印到控制台,这是任务的第一步,然后我创建了GregorianCalendar dteDate。我不确定如何提取我需要为我的日历提供相关信息的行,以及在这个程序的这一点上该做什么。我不想在这篇文章中有太多的单词,让我的问题更难回答,所以我会从文本文件中发布相关的行,如果我需要在我的问题中添加更多的信息,或者拿出一些或澄清,让我知道,我会编辑它。文本文件中包含日期和时间的行是其中的前4行,如下所示:(输入类似的代码以使其清晰)

The current date is: Thu 03/28/2013    
Enter the new date: (mm-dd-yy)  
The current time is: 12:41:26.31
Enter the new time:  

如果有人知道该做什么,或者甚至可以指出我在正确的方向上如何去做这件事,我会很感激的帮助。

这是我在Bhushan Bhangale的帮助下得到的代码,但是我在导入日历时遇到了麻烦。

String line = in.readLine();
        int lineNum = 1;
        //extract the month
        String monthSubstring = line.substring(25,27);
        int month = Integer.parseInt(monthSubstring) -1 ;
        //extact the year
        String yearSubstring = line.substring(31,35);
        int year = (Integer.parseInt(yearSubstring));
        //extract the date
        String daySubstring = line.substring(28,30);
        int day = Integer.parseInt(daySubstring);
        while(line != null)
        {
            System.out.println(line);
            line = in.readLine();
            lineNum ++;
         if (lineNum == 3)
         {
           //extract the hour
            String hourSubstring = line.substring(21,23);
            int hour = Integer.parseInt(hourSubstring); 
            //extract the minute
            String minuteSubstring = line.substring(24,26);
            int minute = Integer.parseInt(minuteSubstring);
            //extract the second
            String secondSubstring = line.substring(27,29);
            int second= Integer.parseInt(secondSubstring);
           }
       } 
     GregorianCalendar dteDate = new GregorianCalendar(year, month, day, hour, minute, second);
        System.out.println(dteDate.getTime());  

问题是,日历不能看到小时,分钟或秒,我不知道如何使它导入它们

因为它是类工作,所以我会给你一些提示,让你进一步进行。

首先让我们假设文件格式是固定的。

第一行是日期,第三行是时间。在while循环中,因为你是逐行读取的,所以你当然可以处理哪一行是第一行还是第三行。

然后从第一行开始使用regex(最好)或StringTokenizer取出日期、月份和年份。忽略这一天,因为它无关紧要。

然后再次使用正则表达式或标记器从第三行取出小时、分钟和秒。

检查GregorianCalendar api设置此信息并创建对象。

使用SimpleDateFormat定义所需的日期格式,并传递日期以获得格式化的日期。

相关内容

  • 没有找到相关文章

最新更新