Please make DatatimeIndex slicing behave as int slicing .
#### Code Sample, a copy-pastable example if possible

```python
In [15]: index = pd.date_range(start='2018-01-01', end='2018-01-05', freq='H')
In [16]: df = pd.DataFrame({'s':1} , index=index)
In [17]: df['2018-01-04': '2018-01-05']
Out[17]:
                     s
2018-01-04 00:00:00  1
2018-01-04 01:00:00  1
2018-01-04 02:00:00  1
2018-01-04 03:00:00  1
2018-01-04 04:00:00  1
2018-01-04 05:00:00  1
2018-01-04 06:00:00  1
2018-01-04 07:00:00  1
2018-01-04 08:00:00  1
2018-01-04 09:00:00  1
2018-01-04 10:00:00  1
2018-01-04 11:00:00  1
2018-01-04 12:00:00  1
2018-01-04 13:00:00  1
2018-01-04 14:00:00  1
2018-01-04 15:00:00  1
2018-01-04 16:00:00  1
2018-01-04 17:00:00  1
2018-01-04 18:00:00  1
2018-01-04 19:00:00  1
2018-01-04 20:00:00  1
2018-01-04 21:00:00  1
2018-01-04 22:00:00  1
2018-01-04 23:00:00  1
2018-01-05 00:00:00  1

In [18]: index = np.arange(0, 128)
In [19]: index
Out[19]:
array([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,
        13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,
        26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
        39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,
        52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,
        65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,
        78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,
        91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103,
       104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
       117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127])

In [20]: df = pd.DataFrame({'s':1} , index=index)
In [21]: df[117:120]
Out[21]:
     s
117  1
118  1
119  1
```
#### Problem description

As you see,  DatatimeIndex slicing behavious is different from  int slicing .
`df['2018-01-04': '2018-01-05']`  would contain the rows in ` '018-01-05` , however int slicing doesn't.


#### Expected Output

```
2018-01-04 00:00:00  1
2018-01-04 01:00:00  1
2018-01-04 02:00:00  1
2018-01-04 03:00:00  1
2018-01-04 04:00:00  1
2018-01-04 05:00:00  1
2018-01-04 06:00:00  1
2018-01-04 07:00:00  1
2018-01-04 08:00:00  1
2018-01-04 09:00:00  1
2018-01-04 10:00:00  1
2018-01-04 11:00:00  1
2018-01-04 12:00:00  1
2018-01-04 13:00:00  1
2018-01-04 14:00:00  1
2018-01-04 15:00:00  1
2018-01-04 16:00:00  1
2018-01-04 17:00:00  1
2018-01-04 18:00:00  1
2018-01-04 19:00:00  1
2018-01-04 20:00:00  1
2018-01-04 21:00:00  1
2018-01-04 22:00:00  1
2018-01-04 23:00:00  1
```

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.5.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.23.3
pytest: 3.5.1
pip: 18.0
setuptools: 39.1.0
Cython: 0.28.2
numpy: 1.14.3
scipy: 1.1.0
pyarrow: None
xarray: None
IPython: 6.4.0
sphinx: 1.7.4
patsy: 0.5.0
dateutil: 2.7.3
pytz: 2018.4
blosc: None
bottleneck: 1.2.1
tables: 3.4.3
numexpr: 2.6.5
feather: None
matplotlib: 2.2.2
openpyxl: 2.5.3
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.4
lxml: 4.2.1
bs4: 4.6.0
html5lib: 1.0.1
sqlalchemy: 1.2.7
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>


------------------


I want to slide dataframe by day window, have to write code as below

```
def sliding_dataframe_by_day_window(df, days, reverse=False):
    if reverse:
        last = df.index[-1] + relativedelta(days=-1, hour=23, minute=59, second=59, microsecond=599)
        last_days = (df.index[-1] - df.index[0]).days // days
        start = last + relativedelta(days=-last_days, hour=0, minute=0, second=0, microsecond=0)
    else:
        start = df.index[0] + relativedelta(hour=0, minute=0, second=0, microsecond=0)
        last_days = (df.index[-1] - df.index[0]).days // days
        last = start + relativedelta(days=last_days-1, hour=23, minute=59, second=59, microsecond=599)

    end = start
    while end <= last:
        end = start + relativedelta(days=days-1, hour=23, minute=59, second=59, microsecond=599)
        yield df[ start : end]
        start = start + relativedelta(days=1)
```