summaryrefslogtreecommitdiff
path: root/value.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2006-03-28 05:24:02 +0000
committerJohn Wiegley <johnw@newartisans.com>2008-04-13 02:41:32 -0400
commit5a93d4819e5fc753352618b729e0fe45532166b9 (patch)
tree200220bfcc5642a9efd8847001aeac889ed79e7d /value.cc
parentc3c401ac0f43dfb3f71b818b45ef47578e6d390b (diff)
downloadledger-5a93d4819e5fc753352618b729e0fe45532166b9.tar.gz
ledger-5a93d4819e5fc753352618b729e0fe45532166b9.tar.bz2
ledger-5a93d4819e5fc753352618b729e0fe45532166b9.zip
Reworked the way date/times are handled.
Diffstat (limited to 'value.cc')
-rw-r--r--value.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/value.cc b/value.cc
index 8ee3b09b..6f1f3ad7 100644
--- a/value.cc
+++ b/value.cc
@@ -836,7 +836,7 @@ value_t::operator double() const
case INTEGER:
return *((long *) data);
case DATETIME:
- return *((datetime_t *) data);
+ throw new value_error("Cannot convert a date/time to a double");
case AMOUNT:
return *((amount_t *) data);
case BALANCE:
@@ -1111,7 +1111,7 @@ void value_t::abs()
}
}
-value_t value_t::value(const std::time_t moment) const
+value_t value_t::value(const datetime_t& moment) const
{
switch (type) {
case BOOLEAN:
@@ -1225,18 +1225,18 @@ value_t value_t::date() const
case BOOLEAN:
throw new value_error("Cannot find the date of a boolean");
case INTEGER:
- return 0L;
+ return datetime_t();
case DATETIME:
return *this;
case AMOUNT:
- return ((amount_t *) data)->date();
+ return datetime_t(((amount_t *) data)->date());
case BALANCE:
- return (long)((balance_t *) data)->date();
+ return datetime_t(((balance_t *) data)->date());
case BALANCE_PAIR:
- return (long)((balance_pair_t *) data)->quantity.date();
+ return datetime_t(((balance_pair_t *) data)->quantity.date());
default:
assert(0);