Time dependent functions

I’m trying to make a transfer function require X or Y dependent on time relative to the contract creation.

So far this is what I have:

uint256 public createTime;

function Time() public {
    createTime = block.timestamp;
}


 function _transfer(blabla)
 if(createTime < 7 days * 1 days)
    {
        require(this and that);
    }

    if(createTime > 7 days * 1 days)
    {
        require(this and that);
    }

The first function Time shows as 0 in the testnet. I’m not sure if this is correct? I was under the impression that function would display the timestamp the contract was transacted (deployed), so that I could calculate certain time requirements relative to that starting time.

Is this in any way correct or am I off the ballpark here?

Thanks!

I think for your code:

uint256 public createTime;

function Time() public {
    createTime = block.timestamp;
}

Before you call the function Time(), the variable createTime is always 0, once you call Time() to set a new value for createTime, it will show the timestamp when did you call Time(), and it seems like the function Time() does not have any permission, anyone can call it at any time. Have I made myself clear?