0

私はPascalプログラミングの初心者であり、文字列を有効な日付に変換するために1日を費やしました。この日付を使用して、後で別の日付を減算して、2つの日付の間の日数を見つけることができます。plsplsは私を助けてくれますか。

私はこのコードから始めて、文字列形式で入力された最初の日付を、計算で使用できる日付に変換しようとしました。

program TryDate;

Var
date1: TDateTime;
thedate:string;

Begin
Writeln ('Enter date');
Readln (thedate);
date1:=StrToDate (thedate);
Writeln ('The date is ',date1);
end.


The program's basic structure can be seen here:

Begin
Writeln ('Enter customer last name');
readln (clname);
Writeln ('Enter customer first name');
readln (cfname);
Writeln ('Enter Dvd Title');
readln (dvdtit);
Writeln ('Enter Due Date');
readln (dued);
Writeln ('Enter Actual Date Returned');
readln (adret);
daysover:=adret-dued;
readln;
end. 

プログラムをさらに拡張することが期待されていますが、他のコンポーネントを試す前に、この小さな部分を機能させようとしていました。

簡単な説明と例、または考えられる解決策をいただければ幸いです。

4

2 に答える 2

2

これまでに取得したコードの問題を特定していません。私が見ることができる唯一の問題は、実際のコードが投稿したものとまったく同じである場合、次uses sysutils;のように指定していないことです。

program TryDate;

uses
  sysutils;

Var
  date1: TDateTime;
  thedate: string;

Begin
  Writeln ('Enter date');
  Readln (thedate);
  date1 := StrToDate (thedate);
  Writeln ('The date is ',date1);
end.

StrToDate関数はユニットの一部であり、そのプロシージャ、関数、タイプなどを使用できるようにするためにsysutils、プログラムに含める必要があります。uses

于 2013-02-10T13:00:51.137 に答える
2

Andriy に加えて、OS 情報や日付を入力する形式も提供しません。

*nix では、USES 句に clocale を追加して、優先する日付形式も含むロケール システムを初期化する必要があるため、これは重要です。

本当に恐ろしいもののために、ほとんどのカスタム作成された日付を解析できる関数 scandatetime があります: http://www.freepascal.org/docs-html/rtl/dateutils/scandatetime.html

于 2013-02-10T14:41:52.860 に答える