我需要找到两个日期之间的天数:一个来自报告,一个是当前日期.我的片段:
int age=calculateDifference(agingDate, today);
Run Code Online (Sandbox Code Playgroud)
这calculateDifference是一个私有方法,agingDate并且today是Date对象,仅供您澄清.我已经关注了Java论坛中的两篇文章,即Thread 1/Thread 2.
它在独立程序中运行良好,但是当我将其包含在我的逻辑中以从报告中读取时,我会得到一个不寻常的值差异.
为什么会发生这种情况?我该如何解决?
编辑:
与实际天数相比,我获得的天数更多.
public static int calculateDifference(Date a, Date b)
{
int tempDifference = 0;
int difference = 0;
Calendar earlier = Calendar.getInstance();
Calendar later = Calendar.getInstance();
if (a.compareTo(b) < 0)
{
earlier.setTime(a);
later.setTime(b);
}
else
{
earlier.setTime(b);
later.setTime(a);
}
while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR))
{
tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR));
difference += tempDifference;
earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Apache POI 3.6,我想阅读一个excel文件,其中包含这样的日期8/23/1991.
switch (cell.getCellType()) {
...
...
case HSSFCell.CELL_TYPE_NUMERIC:
value = "NUMERIC value=" + cell.getNumericCellValue();
break;
...
}
Run Code Online (Sandbox Code Playgroud)
但它采用数值类型并返回这样的值33473.0.
我试过使用数字细胞类型虽然没有运气.
dbltemp=row.getCell(c, Row.CREATE_NULL_AS_BLANK).getNumericCellValue();
if (c == 6 || c == 9) {
strTemp= new String(dbltemp.toString().trim());
long tempDate = Long.parseLong(strTemp);
Date date = new Date(tempDate);
strVal = date.toString();
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决我的问题?
我必须从Excel文件中删除一张表.
这是我的代码片段:
FileInputStream fileStream = new FileInputStream(destFile);
POIFSFileSystem fsPoi = new POIFSFileSystem(fileStream);
HSSFWorkbook workbook = new HSSFWorkbook(fsPoi);
int index = 0;
HSSFSheet sheet = workbook.getSheet("Setup");
if(sheet != null) {
index = workbook.getSheetIndex(sheet);
workbook.removeSheetAt(index);
}
return destFile;
Run Code Online (Sandbox Code Playgroud)
在此之后,我得到了完全相同的工作簿,而没有删除工作表 "设置"
帮我解决这个问题.任何帮助,将不胜感激
我正在使用Apache POI 3.6.我有一个空白的专栏.我希望能够阅读它,然后转到下一栏.即使我能解决 NullPointerException问题,我也无法进入下一个细胞.
这是我的代码片段:
HSSFCell cell = row.getCell(c);
String value = null;
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
value = "FORMULA value=" + cell.getCellFormula();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value = "NUMERIC value=" + cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_STRING:
value = "STRING value=" + cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK:
value="";
break;
case HSSFCell.CELL_TYPE_ERROR:
value="error";
break;
default:
break;
}
System.out.println("CELL col=" + cell.getColumnIndex() + " VALUE=" + value);
Run Code Online (Sandbox Code Playgroud)
我该如何解决我的问题?
我需要在Web浏览器中显示新生成的excel(来自使用Apache POI的表)(无论是Firefox,Opera还是IE).我已经创建了JSP文件
contentType="application/vnd.ms-excel"
但我没有得到它.
这是我的代码片段:
<%@page session="true" contentType="application/vnd.ms-excel" pageEncoding="UTF-8"%>
<%@page import="org.apache.poi.ss.usermodel.CellStyle"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="org.apache.poi.ss.usermodel.CreationHelper"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFCell"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFRow"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFSheet"%>
<html>
<head>
<%!
int r=0;
HSSFWorkbook book;
HSSFSheet sheet;
HSSFRow row;
CreationHelper createHelper = book.getCreationHelper();
Connection conn;
Statement stmt;
ResultSet rs;
%>
<title>Report</title>
<%
book = new HSSFWorkbook();
sheet = book.createSheet("Report");
%>
</head>
<body>
<%
try {
// Header of the Excel File
row = sheet.createRow(r); …Run Code Online (Sandbox Code Playgroud) 我想获得两个Java Date对象之间的区别.我用过Joda-Time库.但问题是我得到的天差异大于实际天差.
这是我的代码片段:
DateFormat formatter = new SimpleDateFormat("mm/dd/yyyy");
Date someDate=new Date();
Date today = Calendar.getInstance().getTime();
try {
someDate = formatter.parse("06/22/2010");
}
catch(ParseException pe) {
System.out.println("Parser Exception");
}
int days = Days.daysBetween(new DateTime(someDate), new DateTime(today)).getDays();
System.out.println(" Days Between " + someDate + " : " + today + " - " + days);
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
Days Between Fri Jan 22 00:06:00 IST 2010 : Sun Jul 25 19:27:01 IST 2010 - 184
Run Code Online (Sandbox Code Playgroud)
在这里,为什么需要"06/22/2010"作为1月22日?有没有人面临类似的问题?
帮帮我的朋友.. Thanx提前..
我有两个逗号分隔值的字符串,比如一个数字从1到10,另一个有素数.我想要
从数字中删除素数
.
这是我的代码片段:
String numbers = "1,2,3,4,5,6,7,8,9,10";
String prime = "2,3,5,7";
List<String> numList = Arrays.asList(numbers.split(","));
numList.removeAll(Arrays.asList(prime.split(",")));
Run Code Online (Sandbox Code Playgroud)
我收到了UnsupportedOperationException.任何帮助,将不胜感激.