contract Timeline {
    //start time
    uint public startTime;

    //end time
    uint public endTime;

    modifier started() {
        require(now >= startTime);
        _;
    }

    modifier notEnded() {
        require(now <= endTime);
        _;
    }

    modifier isEnded() {
        require(now >= endTime);
        _;
    }

    modifier onlyWhileOpen() {
        require(now >= startTime && now <= endTime);
        _;
    }


    /**
     * @dev Timeline constructor
     * @param _startTime The opening time in seconds (unix Time)
     * @param _endTime The closing time in seconds (unix Time)
     */
    function Timeline(
        uint256 _startTime,
        uint256 _endTime
    )
        public 
    {
        require(_startTime > now);
        require(_endTime > _startTime);
        startTime = _startTime;
        endTime = _endTime;
    }

}
/**
 * @title Utility smart contracts
 * @author Biglabs Pte. Ltd.
 * @dev Timeline smart contract (within the period)
 */
function Timeline(
    uint256 _startTime,
    uint256 _endTime
)
    public 
{
    require(_startTime > now);
    require(_endTime > _startTime);
    startTime = _startTime;
    endTime = _endTime;
}

/**
 * @dev Timeline constructor
 * @param _startTime The opening time in seconds (unix Time)
 * @param _endTime The closing time in seconds (unix Time)
 */