# Stubs for zope.interface.common.idatetime (Python 3.6)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from typing import Any, Optional
from zope.interface import Interface

class ITimeDeltaClass(Interface):
    min: Any = ...
    max: Any = ...
    resolution: Any = ...

class ITimeDelta(ITimeDeltaClass):
    days: Any = ...
    seconds: Any = ...
    microseconds: Any = ...

class IDateClass(Interface):
    min: Any = ...
    max: Any = ...
    resolution: Any = ...
    def today() -> None: ...
    def fromtimestamp(timestamp: Any) -> None: ...
    def fromordinal(ordinal: Any) -> None: ...

class IDate(IDateClass):
    year: Any = ...
    month: Any = ...
    day: Any = ...
    def replace(year: Any, month: Any, day: Any) -> None: ...
    def timetuple() -> None: ...
    def toordinal() -> None: ...
    def weekday() -> None: ...
    def isoweekday() -> None: ...
    def isocalendar() -> None: ...
    def isoformat() -> None: ...
    def ctime() -> None: ...
    def strftime(format: Any) -> None: ...

class IDateTimeClass(Interface):
    min: Any = ...
    max: Any = ...
    resolution: Any = ...
    def today() -> None: ...
    def now(tz: Optional[Any] = ...) -> None: ...
    def utcnow() -> None: ...
    def fromtimestamp(timestamp: Any, tz: Optional[Any] = ...) -> None: ...
    def utcfromtimestamp(timestamp: Any) -> None: ...
    def fromordinal(ordinal: Any) -> None: ...
    def combine(date: Any, time: Any) -> None: ...

class IDateTime(IDate, IDateTimeClass):
    year: Any = ...
    month: Any = ...
    day: Any = ...
    hour: Any = ...
    minute: Any = ...
    second: Any = ...
    microsecond: Any = ...
    tzinfo: Any = ...
    def date() -> None: ...
    def time() -> None: ...
    def timetz() -> None: ...
    def replace(year: Any, month: Any, day: Any, hour: Any, minute: Any, second: Any, microsecond: Any, tzinfo: Any) -> None: ...
    def astimezone(tz: Any) -> None: ...
    def utcoffset() -> None: ...
    def dst() -> None: ...
    def tzname() -> None: ...
    def timetuple() -> None: ...
    def utctimetuple() -> None: ...
    def toordinal() -> None: ...
    def weekday() -> None: ...
    def isoweekday() -> None: ...
    def isocalendar() -> None: ...
    def isoformat(sep: str = ...) -> None: ...
    def ctime() -> None: ...
    def strftime(format: Any) -> None: ...

class ITimeClass(Interface):
    min: Any = ...
    max: Any = ...
    resolution: Any = ...

class ITime(ITimeClass):
    hour: Any = ...
    minute: Any = ...
    second: Any = ...
    microsecond: Any = ...
    tzinfo: Any = ...
    def replace(hour: Any, minute: Any, second: Any, microsecond: Any, tzinfo: Any) -> None: ...
    def isoformat() -> None: ...
    def strftime(format: Any) -> None: ...
    def utcoffset() -> None: ...
    def dst() -> None: ...
    def tzname() -> None: ...

class ITZInfo(Interface):
    def utcoffset(dt: Any) -> None: ...
    def dst(dt: Any) -> None: ...
    def tzname(dt: Any) -> None: ...
    def fromutc(dt: Any) -> None: ...
