简体   繁体   English

我如何跟踪代码中发生某些事情的时间?

[英]How do i keep track of the time at which something happened in my code?

i am making a program that reads input from a user, allows them to view the books available in my library (which is imported from an excel sheet), picking an item and choosing to borrow it, but the thing is that i want to put borrowing and return dates, how do i do that exactly?我正在制作一个读取用户输入的程序,允许他们查看我图书馆中可用的书籍(从 excel 表导入),选择一个项目并选择借用它,但问题是我想放借用和归还日期,我该怎么做? for example: if a user confirms the borrowing of a book, after the operation happens the date of borrowing should be added in the excel sheet, and also a little side request with this;例如:如果用户确认借书,操作发生后需要在excel表中添加借书日期,并附带一点请求; if it is possible to somehow neglect the first row in a for loop that is looping across an array of loops and proceed with other rows then please help me out with that as well (this loop is at line 111 in the code, the one after the list "filteredBooks") here is my code so far: `public class BookStudentMerge {如果有可能以某种方式忽略在循环数组中循环的 for 循环中的第一行并继续处理其他行,那么请也帮我解决这个问题(这个循环在代码的第 111 行,后面的那个到目前为止,“filteredBooks”列表是我的代码:`public class BookStudentMerge {

 public static List<Row> getStudentInfo(Sheet sheet, DataFormatter formatter, FormulaEvaluator evaluator, String searchValue) {
      List<Row> result = new ArrayList<Row>();
      String cellValue = "";
      String searchV = searchValue.toLowerCase();
      for (Row row : sheet) {
       for (Cell cell : row) {
        cellValue = formatter.formatCellValue(cell, evaluator);
        String cellV = cellValue.toLowerCase();
        if (cellV.contains(searchV)) {
         result.add(row);
         break;
        }
       }
      }
      return result;
     }
 public static List<Row> bookSearch(Sheet sheet, DataFormatter formatter, FormulaEvaluator evaluator, String searchValue) {
     List<Row> none = new ArrayList<Row>();
     String searchM = searchValue.toLowerCase(); 
     List<Row> result = new ArrayList<Row>();
      String cellValue = "";
      for (Row row : sheet) {
       for (Cell cell : row) {
        cellValue = formatter.formatCellValue(cell, evaluator);
        String cellM = cellValue.toLowerCase();
        if (cellM.contains(searchM)) {
            result.add(row);
         break;
        }
       }
      }
      return result;
 }
 public static boolean checkAvailability (Row r, DataFormatter formatter, FormulaEvaluator evaluator) {
     String cellValue = "";
     for (Cell c : r) {
         cellValue = formatter.formatCellValue(c, evaluator);
         String cellM = cellValue.toLowerCase();
         if (cellM.equalsIgnoreCase("Available")) {
             return true; 
     }
    }
     return false;
 }
 public static void changeStatus (Row r, DataFormatter formatter, FormulaEvaluator evaluator) {
     String cellValue = "";
     for (Cell c : r) {
         cellValue = formatter.formatCellValue(c, evaluator);
         String cellM = cellValue.toLowerCase();
     if (cellM.equalsIgnoreCase("Available")) {
         c.setCellValue("Unavailable");
     }
     else if (cellM.equalsIgnoreCase("Unavailable")) {
         c.setCellValue("Available"); 
     }
     }
 }

public static void main(String[] args) throws IOException, InvalidFormatException {





    Workbook Books = WorkbookFactory.create(new FileInputStream("C:\\Users\\abdul\\Desktop\\University Files\\Object-Oriented Programming\\Project files\\Book class\\Books & DDC.xlsx"));
    Sheet SB = Books.getSheetAt(0);
    Workbook Students = WorkbookFactory.create(new FileInputStream("C:\\Users\\abdul\\Desktop\\University Files\\Object-Oriented Programming\\Project files\\Book class\\StudentsInfo.xlsx"));
    Sheet SS = Students.getSheetAt(0);
    DataFormatter FB = new DataFormatter();
    FormulaEvaluator EB =  Books.getCreationHelper().createFormulaEvaluator();      
    DataFormatter FS = new DataFormatter();
    FormulaEvaluator ES =  Students.getCreationHelper().createFormulaEvaluator();
    Scanner s = new Scanner (System.in);




         System.out.println("Welcome to our BiblioTheque library program!");
         System.out.println("Enter a valid student ID number: ");
         String inp = s.nextLine();
          Row headers = SS.getRow(0);
          for (Cell HS : headers) {
              System.out.print(HS.getStringCellValue() + "\t\t  ");
          }
         System.out.println();
         List<Row> filteredStudents = getStudentInfo(SS, FS, ES, inp);
         for (Row row : filteredStudents) {
               for (Cell cell : row) {
                   System.out.print(FS.formatCellValue(cell, ES));
                   System.out.print("\t     ");
               }
               System.out.println();
         }
         System.out.println();
         System.out.println("Search for a book by title, author, DDC, or ISBN: ");
         System.out.println("enter the name, author, ddc, isbn of your book: ");
         String search = s.nextLine();
          List<Row> filteredBooks = bookSearch(SB, FB, EB, search);
          Row HB = SB.getRow(0);
          for (Cell CB : HB) {
              System.out.print(CB.getStringCellValue() + "\t\t\t");
          }
          System.out.println();
          for (Row row : filteredBooks) {
              for (Cell cell : row) {
            System.out.print(FB.formatCellValue(cell, EB));
            System.out.print("\t\t");
           }
              System.out.println();
          }
          if (filteredBooks.isEmpty()) {
              System.out.println("no results found for the entered keyword/number");
          }
          else {
              System.out.println("do you wish to borrow any of the displayed books?");
          }
          String ans = s.nextLine();
          if (ans.equalsIgnoreCase("yes")) {
              System.out.println("choose the desired book by typing the item's list number: ");
          }
          int borrow = s.nextInt() - 1;
          Row Result = filteredBooks.get(borrow);
          if (checkAvailability(Result, FB, EB)) {
              System.out.println("You are going to borrow the book " + Result.getCell(0) + ", please proceed to the help desk to complete the operation.");
              changeStatus(Result, FB, EB);
          }
}

}` }`

One possibility is java.time.LocalDateTime :一种可能性是java.time.LocalDateTime

import java.time.LocalDateTime;    

public class Time {    
  public static void main(String[] args) {    
   LocalDateTime time = LocalDateTime.now();  
   System.out.println(time);  
  }    
}    

This will give an output like this: 2020-05-30T13:29:14.566 .这将给出一个 output 像这样: 2020-05-30T13:29:14.566

If you want to change the format, you will have to use a DateTimeFormatter :如果要更改格式,则必须使用DateTimeFormatter

import java.time.LocalDateTime; 
import java.time.format.DateTimeFormatter;  

public class Time {    
  public static void main(String[] args) {    
   LocalDateTime time = LocalDateTime.now();

   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
   String timeDate = time.format(formatter);
   System.out.println(timeDate);  
  }    
}      

This will give an output like 30-05-2020 13:59:13 .这将给出一个 output 像30-05-2020 13:59:13

So now we have a String with the wanted date.所以现在我们有了一个带有所需日期的String We now just have to write this to a csv-file (my recommendation is to use a csv and not a excel-file.).我们现在只需将其写入 csv 文件(我的建议是使用 csv 而不是 excel 文件。)。 One example on how this is possible is provided in this answer.这个答案中提供了一个关于如何做到这一点的例子。 If you really want to use excel, I suggest reading this question and its answers.如果您真的想使用 excel,我建议您阅读这个问题及其答案。

More information can be found here and here .更多信息可以在这里这里找到。

With the information and examples provided above, you should be able to implement it by yourself in your code.通过上面提供的信息和示例,您应该能够在代码中自己实现它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM