LCOV - code coverage report
Current view: top level - src/activitygen/city - AGTime.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 46.1 % 76 35
Test Date: 2024-11-22 15:46:21 Functions: 52.0 % 25 13

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
       4              : // activitygen module
       5              : // Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)
       6              : // This program and the accompanying materials are made available under the
       7              : // terms of the Eclipse Public License 2.0 which is available at
       8              : // https://www.eclipse.org/legal/epl-2.0/
       9              : // This Source Code may also be made available under the following Secondary
      10              : // Licenses when the conditions for such availability set forth in the Eclipse
      11              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      12              : // or later which is available at
      13              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      14              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      15              : /****************************************************************************/
      16              : /// @file    AGTime.cpp
      17              : /// @author  Piotr Woznica
      18              : /// @author  Daniel Krajzewicz
      19              : /// @author  Michael Behrisch
      20              : /// @author  Walter Bamberger
      21              : /// @date    July 2010
      22              : ///
      23              : // Time manager: able to manipulate the time using Sumo's format (seconds)
      24              : /****************************************************************************/
      25              : #include <config.h>
      26              : 
      27              : #include "AGTime.h"
      28              : 
      29              : 
      30              : // ===========================================================================
      31              : // method definitions
      32              : // ===========================================================================
      33            0 : AGTime::AGTime(const AGTime& time) {
      34            0 :     mySeconds = time.mySeconds;
      35            0 : }
      36              : 
      37              : int
      38         5832 : AGTime::convert(int days, int hours, int minutes, int seconds) {
      39         5832 :     mySeconds = seconds + 60 * (minutes + 60 * (hours + 24 * (days)));
      40         5832 :     return mySeconds;
      41              : }
      42              : 
      43              : int
      44            0 : AGTime::getSecondsOf(double minutes) {
      45            0 :     return static_cast<int>(60.0 * minutes);
      46              : }
      47              : 
      48              : bool
      49            0 : AGTime::operator==(const AGTime& time) {
      50            0 :     if (this->mySeconds == time.mySeconds) {
      51              :         return true;
      52              :     } else {
      53            0 :         return false;
      54              :     }
      55              : }
      56              : 
      57              : bool
      58            0 : AGTime::operator<(const AGTime& time) {
      59            0 :     if (this->mySeconds < time.mySeconds) {
      60              :         return true;
      61              :     } else {
      62            0 :         return false;
      63              :     }
      64              : }
      65              : 
      66              : bool
      67            0 : AGTime::operator<=(const AGTime& time) {
      68            0 :     if (this->mySeconds <= time.mySeconds) {
      69              :         return true;
      70              :     } else {
      71            0 :         return false;
      72              :     }
      73              : }
      74              : 
      75              : void
      76            0 : AGTime::operator+=(const AGTime& time) {
      77            0 :     this->mySeconds += time.mySeconds;
      78            0 : }
      79              : 
      80              : void
      81         4616 : AGTime::operator+=(int seconds) {
      82         4616 :     this->mySeconds += seconds;
      83         4616 : }
      84              : 
      85              : void
      86            0 : AGTime::operator-=(const AGTime& time) {
      87            0 :     this->mySeconds -= time.mySeconds;
      88            0 : }
      89              : 
      90              : AGTime
      91            0 : AGTime::operator+(const AGTime& time) {
      92            0 :     AGTime newtime(time.mySeconds + this->mySeconds);
      93            0 :     return newtime;
      94              : }
      95              : 
      96              : int
      97        10944 : AGTime::getDay() {
      98        10944 :     return (mySeconds / 86400);
      99              : }
     100              : 
     101              : int
     102           14 : AGTime::getHour() {
     103           14 :     return ((mySeconds / 3600) % 24);
     104              : }
     105              : 
     106              : int
     107           14 : AGTime::getMinute() {
     108           14 :     return ((mySeconds / 60) % 60);
     109              : }
     110              : 
     111              : int
     112           14 : AGTime::getSecond() {
     113           14 :     return (mySeconds % 60);
     114              : }
     115              : 
     116              : int
     117         4616 : AGTime::getSecondsInCurrentDay() {
     118         4616 :     return (mySeconds % 86400);
     119              : }
     120              : 
     121              : int
     122         3916 : AGTime::getTime() {
     123         3916 :     return this->mySeconds;
     124              : }
     125              : 
     126              : void
     127           82 : AGTime::setDay(int d) {
     128           82 :     if (0 <= d) {
     129           82 :         mySeconds -= 86400 * getDay();
     130           82 :         mySeconds += 86400 * d;
     131              :     }
     132           82 : }
     133              : 
     134              : void
     135            0 : AGTime::setHour(int h) {
     136            0 :     if (0 <= h && h < 24) {
     137            0 :         mySeconds -= 3600 * getHour();
     138            0 :         mySeconds += 3600 * h;
     139              :     }
     140            0 : }
     141              : 
     142              : void
     143            0 : AGTime::setMinute(int m) {
     144            0 :     if (0 <= m && m < 60) {
     145            0 :         mySeconds -= 60 * getMinute();
     146            0 :         mySeconds += 60 * m;
     147              :     }
     148            0 : }
     149              : 
     150              : void
     151            0 : AGTime::setSecond(int s) {
     152            0 :     if (0 <= s && s < 60) {
     153            0 :         mySeconds -= getSecond();
     154            0 :         mySeconds += s;
     155              :     }
     156            0 : }
     157              : 
     158              : void
     159           38 : AGTime::setTime(int seconds) {
     160           38 :     mySeconds = seconds;
     161           38 : }
     162              : 
     163              : void
     164           50 : AGTime::addDays(int d) {
     165           50 :     mySeconds += 86400 * d;
     166           50 : }
     167              : 
     168              : void
     169            0 : AGTime::addHours(int h) {
     170            0 :     mySeconds += 3600 * h;
     171            0 : }
     172              : 
     173              : void
     174          999 : AGTime::addMinutes(int m) {
     175          999 :     mySeconds += 60 * m;
     176          999 : }
     177              : 
     178              : void
     179          999 : AGTime::addSeconds(int s) {
     180          999 :     mySeconds += s;
     181          999 : }
     182              : 
     183              : 
     184              : /****************************************************************************/
        

Generated by: LCOV version 2.0-1