public long pullNextEarningsDate(String symbol) {
try {
URL url = new URL("https://www.quandl.com/api/v3/datatables/ZACKS/EA.csv?ticker=" + symbol + "&api_key=<your password here>");
HttpURLConnection hc = (HttpURLConnection) url.openConnection();
hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 4.10; rv:52.0) Gecko/20100101 Firefox/52.0");
int response = hc.getResponseCode();
if(response == 200) {
BufferedReader in = new BufferedReader(new InputStreamReader(hc.getInputStream()));
String header = in.readLine();
if(header != null) {
String data = in.readLine();
if(data != null) {
String[] headersplit = header.split(",");
String[] datasplit = data.split(",");
if(headersplit.length == datasplit.length) {
for(int i = 0; i < headersplit.length; i++) {
if(headersplit[i].equalsIgnoreCase("exp_rpt_date_qr1") && datasplit[i].matches("\\d+.\\d+.\\d+")) {
return nextearningsdateformat.parse(datasplit[i]).getTime();
}
}
}
}
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
public long pullNextEarningsDateNasdaqDotCom(String symbol) {
try {
URL url = new URL("http://www.nasdaq.com/earnings/report/" + symbol);
HttpURLConnection hc = (HttpURLConnection) url.openConnection();
hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 4.10; rv:52.0) Gecko/20100101 Firefox/52.0");
int response = hc.getResponseCode();
if(response == 200) {
BufferedReader in = new BufferedReader(new InputStreamReader(hc.getInputStream()));
String data = in.readLine();
while(data != null) {
if(data.contains("Earnings announcement* for")) {
Pattern p = Pattern.compile(".*Earnings announcement.*: (.*)");
Matcher m = p.matcher(data);
if(m.find()) {
String regdate = m.group(1);
if(!regdate.isEmpty() && !regdate.contains("TBA")) {
Date date = nasdaqnextearningsdateformat.parse(regdate);
if(date != null) {
return date.getTime();
}
}
else {
return 0;
}
}
}
data = in.readLine();
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}