私はほぼ完成したスクリプトを持っていますが、修正できないようなわずかな問題があります。カレンダーの日付を差し引く
まず、スクリプトを簡単に説明してください。 Calendar
を使用して現在の日付を取得します。その後、現在の日付に2日を加算した後、新しい日付の書式を変更するための書式が作成されます。新しい日付を.txtファイルに出力した後、を使用して.txtファイルからその日付を取得します。それがここにあり、ここで私は若干のトラブルを抱えています。私が.txtファイルから得たその新しい日付、私は実際の現在の日付から引き算したいと思います。したがって、私は現在のシステム日付から2日後までカウントダウンすることができます。現在、コードの最後の6行である減算/カウントダウン関数内の日付変数todAdd
を使用してコードが減算されています。しかし、その日付変数ではなく、dateFroText
変数にしたいと思いますが、変数の解析を非常にうまく処理していないように見えるため、最後の減算コードを解析できません。
基本的に例を挙げれば、todAdd
はdateFroText
で変更されています。だからではなく、あなたがそれ以下の完全なコードで見られる線でこのint yearDiff = dateFroText.get(Calendar.YEAR) - startDat.get(Calendar.YEAR);
現在、私はstring
とdate
、integer
にそれを変更しようとしているが、それらのすべてを実行することは不可能つのエラーを生成するようになりますコード。
必要に応じて、コード全体をコピーしたので、実際にテストすることができます。
public class CdowTDate
{
static File dFileD = new File("date.txt");
static String date = "";
public static void main(String[] args) throws ParseException {
//Get current date and time
Calendar startDat = Calendar.getInstance();
System.out.println("Current date: " + startDat.getTime());
//Get that current date and time and then add 2 days
Calendar todAdd = Calendar.getInstance();
todAdd.add(Calendar.DATE, 2);
System.out.println("Date in 2 days: " + todAdd.getTime());
//Create a format for sending date to text file
SimpleDateFormat formDat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
String formatted = formDat.format(todAdd.getTime());
System.out.println("Formatted: " + formatted);
try{
PrintWriter dW = new PrintWriter("date.txt");
dW.println(formatted);
dW.close();
} catch (IOException e) {
}
System.out.println(formDat.parse(formatted));
try {
Scanner dateRead = new Scanner(dFileD);
while (dateRead.hasNextLine()) {
date = dateRead.nextLine();
Date dateFroText = formDat.parse(date);
System.out.println("Date from text new format: " + dateFroText);
}
dateRead.close();
} catch (Exception e) {
System.out.println("Error!");
}
int yearDiff = todAdd.get(Calendar.YEAR) - startDat.get(Calendar.YEAR);
int dayDiff = ((yearDiff*365) + todAdd.get(Calendar.DAY_OF_YEAR)) - startDat.get(Calendar.DAY_OF_YEAR);
dayDiff--;
int hourDiffer = todAdd.get(Calendar.HOUR_OF_DAY)+23 - startDat.get(Calendar.HOUR_OF_DAY);
int minuDiff = todAdd.get(Calendar.MINUTE)+60 - startDat.get(Calendar.MINUTE);
System.out.println(dayDiff + " days " + hourDiffer + " hours " + minuDiff +" minutes remaining");
}
}
エラーを投稿してください。 – chevydog