o
    is                     @   s   d dl Z d dlZd dlZd dlmZ dd Zdd Zdd Z	d	d
 Z
dd Zdd Zdd Zd*ddZdd Zdd Zd+ddZdd Zdd Zdd Zd d! Zd,d#d$Zd-d&d'Zd+d(d)ZdS ).    N)consc                 C   s(   | dd }t |}| dd t|gS )N      r      )int_quar)datemon r
   E/opt/alphahud/venv/lib/python3.10/site-packages/tushare/util/dateu.pyyear_qua   s   r   c                 C   s4   | dv rdS | dv rdS | dv rdS | dv rdS d S )	N)         1)r   r      2)r      	   3)
         4r
   )r	   r
   r
   r   r      s   r   c                  C   s   t j   } t| S N)datetimetodayr   str)dayr
   r
   r   r      s   r   c                  C      t j  j} | S r   )r   r   year)r    r
   r
   r   get_year       r!   c                  C   r   r   )r   r   month)r#   r
   r
   r   	get_month%   r"   r$   c                   C   s   t j  jS r   )r   r   hourr
   r
   r
   r   get_hour)   s   r&   c                  C   s    t j   t d } t| S )Nir   r   r   	timedeltar   )lastyr
   r
   r   today_last_year-      r*   c                 C   s    t j   t |  }t|S r   r'   )daysr)   r
   r
   r   day_last_week2   r+   r.   c                   C   s
   t dS Nz%Y-%m-%d %H:%M:%S)timestrftimer
   r
   r
   r   get_now7   s   
r2   c                 C   s   t j | }|d}|S r/   )r   utcfromtimestampr1   )	timestampdatearrtimestrr
   r
   r   int2time;   s   
r7   c                 C   s*   t j |d}t j | d}|| }|jS )N%Y-%m-%d)r   strptimer-   )startendd1d2deltar
   r
   r   diff_dayA   s   r?   c                 C   s<   t jdt| dt|dd}dd |D d d d S )NQzQ-JAN)freqc                 S   s   g | ]	}t |d qS )r@   )r   split.0dr
   r
   r   
<listcomp>K   s    zget_quarts.<locals>.<listcomp>)pdperiod_rangejoinr   )r:   r;   idxr
   r
   r   
get_quartsH   s   rL   c                  C   s   t tj} | S )uK   
            交易日历
    isOpen=1是交易日，isOpen=0为休市
    )rH   read_csvctALL_CAL_FILE)dfr
   r
   r   	trade_calN   s   rQ   c                 C   sR   t  }||jdk d j}t| trtj| d}| dv s%t| |v r'dS dS )u@   
            判断是否为交易日，返回True or False
    r   calendarDater8   )r   r   TF)rQ   isOpenvalues
isinstancer   r   r9   
isoweekday)r   rP   holidayr   r
   r
   r   
is_holidayW   s   
rX   c                  C   s4   t j   } t| d} | dkrtdS tdS )Nz%wr   rG   )r   r   r   r   r1   r.   )r   r
   r
   r   last_tddatef   s
   rZ    c                 C   s>   t | dd }t |dd }dd t||d dD }|S )Nr   r   c                 S   s   g | ]}|qS r
   r
   rC   r
   r
   r   rF   r   s    ztt_dates.<locals>.<listcomp>r   r   )r   range)r:   r;   	startyearendyeardatesr
   r
   r   tt_dateso   s   r`      c                 C   s2   ddl m} d| d  }d|  d }t|||S )Nr   )randintr   r   )randomrb   r   )nrb   r:   r;   r
   r
   r   _randomv   s   re   c                 C   s&   ddddd}dt | |t | f S )Nz-03-31z-06-30z-09-30z-12-31)r   r   r   r   z%s%s)r   )r    quarterdtr
   r
   r   
get_q_date|   s   rh   )r,   )NN)r[   r[   )ra   )r   r0   pandasrH   tushare.stockr   rN   r   r   r   r!   r$   r&   r*   r.   r2   r7   r?   rL   rQ   rX   rZ   r`   re   rh   r
   r
   r
   r   <module>   s,   

	
	
