Wie kann der Eigentümer eines Vertrags im Konstruktor eine Frist in Tagen festlegen (und nicht als Sekunden einfügen lassen)?

vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen.

Ich habe ein bisschen Probleme mit der Zeit in Solidity. Ich möchte, dass der Eigentümer eines Vertrags dem Konstrukteur eine Frist in Tagen (die im Rest des Vertrags verwendet wird) setzen kann. Ich habe das geschrieben:

constructor(uint _price, uint _days) public {
    owner = msg.sender;       
    price = _price;
    deadlineInDays = now + _days;
}

Aber wie Sie vielleicht wissen, wird, wenn der Eigentümer einen Wert in _days eingibt, dieser (jetzt) ​​zum Epochenzeitformat hinzugefügt. Wenn ich es zum Beispiel auf "10" setze, wenn ich diese Funktion aufrufe, um es zurückzugeben:

function getPriceAndDeadline() public view returns (uint _price, uint _deadline) 
{
    return (price, deadlineInDays);
}    

Es gibt so etwas zurück:

_price 1000
_deadline 1544005222 // this is only ten seconds after I ran the constructor

Ich wollte offensichtlich, dass es das zurückgibt, was "jetzt" plus "_days" in Tagen ist, nicht in Sekunden.

Ich habe es versucht (unten), aber es funktioniert nicht.

constructor(uint _price, uint _days) public {
    owner = msg.sender;       
    price = _price;
    deadlineInDays = now + _days days;
}

Irgendwelche Ideen, wie man damit umgeht?

Ich freue mich über jeden Input im Voraus! Beifall!

Antworten (1)

Verwenden

deadlineInDays = now + _days * 1 days;

Es wird funktionieren.

Vielen Dank!, es funktionierte wie ein Kinderspiel! So eine prägnante und elegante Lösung!