Esempio n. 1
0
 def calntxt(self,sal,mah):
     label = []
     a=0
     c=1
     b=1
     for d in range(42):
                                            
         if d < self.firstweekofmonth(sal,mah):
             
                              
             label.append((khayyam.JalaliDate(sal,mah,1)-
                            timedelta(days=
                          (self.firstweekofmonth(sal,mah)-d))).strftime('%d'))
                                          
                             
                             
         if d >= self.firstweekofmonth(sal,mah):
             if c > khayyam.JalaliDate(sal,mah).daysinmonth:
                 a=a+1
                 label.append(str(a))
             else:
                 label.append(str(c))
                 c=c+1
                     
                             
     return label
Esempio n. 2
0
 def Onmonth( self, event ):
     n=event.GetId()
     m=self.moncal[n].GetLabel()
             
     #sal=khayyam.JalaliDate.today().strftime('%N')
     sal = int(khayyam.JalaliDate(year=self.sallat).strftime('%Y'))
     #mah=khayyam.JalaliDate.today().strftime('%B')
     mah = int(khayyam.JalaliDate(month=n+1).strftime('%m'))
     #print sal,mah
     
     self.HideWithEffect(10,200)
     self.DestroyChildren()
     self.panel = MyPanel2(self,sal,mah)
     self.Show()
    def dayofyear(self):
        """
        Return the day of year (1-[365, 366]).

        :rtype: int
        """
        return (self.date() - khayyam.JalaliDate(self.year, 1, 1)).days + 1
    def date(self):
        """
        Return date object with same year, month and day.

        :rtype: :py:class:`khayyam.JalaliDate`
        """
        return khayyam.JalaliDate(self.year, self.month, self.day)
 def get_time_delta(row_date):
     year = row_date.group(1)
     year = '13' + year if year[0] == '9' else '14' + year
     month = row_date.group(2)[0:2]
     day = row_date.group(2)[2:4]
     now = khayyam.JalaliDatetime.now()
     requested_day = khayyam.JalaliDate(year, month, day)
     time_delta = now - requested_day
     return time_delta.days
Esempio n. 6
0
 def Onmonth( self, event ):
     n=event.GetId()
     m=self.yercal[n].GetLabel()
     #print m
     #sal=khayyam.JalaliDate.today().strftime('%N')
     sal = int(khayyam.JalaliDate(year=m).strftime('%Y'))
     #mah=khayyam.JalaliDate.today().strftime('%B')
     #mah = int(khayyam.JalaliDate(month=n+1).strftime('%m'))
     #print sal,mah
     #print unicode(sal)
     #print e2f(unicode(sal))
     self.HideWithEffect(10,200)
     self.DestroyChildren()
     self.panel = MyPanel3(self,sal)
     self.Show()
Esempio n. 7
0
 def Onright( self, event ):
     self.mahlat=self.mahlat-1
     if self.mahlat<=0:
         self.sallat=self.sallat-1
         self.mahlat=12
                   
     mah=khayyam.JalaliDate(self.sallat,self.mahlat).monthname()         
     self.m_button1.SetLabel(mah+' '+str(self.sallat))
     
     self.calgrid()
     
     self.HideWithEffect(6,200)
     self.Show()
     self.Refresh()
     self.Layout()
Esempio n. 8
0
    def Onleft( self, event ):
        self.mahlat=self.mahlat+1
        if self.mahlat>12:
            self.sallat=self.sallat+1
            self.mahlat=1

        mah=khayyam.JalaliDate(self.sallat,self.mahlat).monthname()
        self.m_button1.SetLabel(mah+' '+str(self.sallat))
        
        self.calgrid()
        
        self.HideWithEffect(5,200)
        self.Show()
        self.Refresh()
        self.Layout()
Esempio n. 9
0
    def right( self, event ):
        self.mahlat=self.mahlat-1
        if self.mahlat<=0:
            self.sallat=self.sallat-1
            self.mahlat=12

        mah=khayyam.JalaliDate(self.sallat,self.mahlat).monthname()
        self.hedbt.SetLabel(mah+' '+str(self.sallat))
        self.Refresh()
        self.Layout()
        #self.calntxt(self.sallat,self.mahlat)
        self.calgrid()
        self.pbdy.HideWithEffect(6,200)
        self.pbdy.Show()
        self.pbdy.Refresh()
        self.pbdy.Layout()
Esempio n. 10
0
    def __init__( self, parent , year=Y , month=M ):
        wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 280,190 ), style = wx.TAB_TRAVERSAL )

        self.SetLayoutDirection(2)
        VSz1 = wx.BoxSizer( wx.VERTICAL )
        
        Hsz1 = wx.BoxSizer( wx.HORIZONTAL )

        self.year = year
        self.month = month

        if year==-1:
            sal=khayyam.JalaliDate.today().strftime('%N')
            self.sallat = int(khayyam.JalaliDate.today().strftime('%Y'))
        else:
            sal = khayyam.JalaliDate(year=year).strftime('%N')
            self.sallat = int(khayyam.JalaliDate(year=year).strftime('%Y'))
        if month==-1:
            mah=khayyam.JalaliDate.today().strftime('%B')
            self.mahlat = int(khayyam.JalaliDate.today().strftime('%m'))
        else:
            mah = khayyam.JalaliDate(month=month).strftime('%B')
            self.mahlat = int(khayyam.JalaliDate(month=month).strftime('%m'))
        self.w = self.firstweekofmonth(self.sallat,self.mahlat)

        
        self.nxtbm = wx.BitmapButton( self, wx.ID_ANY, R.GetBitmap(), wx.DefaultPosition, wx.Size( 10,10 ), 0|wx.NO_BORDER )
        self.nxtbm.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
        Hsz1.Add( self.nxtbm, 0, wx.ALIGN_CENTER|wx.EXPAND, 5 )
        
        self.hedbt = wx.Button( self, wx.ID_ANY, mah+' '+sal, wx.DefaultPosition, wx.Size( -1,20 ), wx.NO_BORDER )
        self.hedbt.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
        Hsz1.Add( self.hedbt, 1, wx.ALIGN_CENTER_VERTICAL, 5 )
        
        self.bakbm = wx.BitmapButton( self, wx.ID_ANY, L.GetBitmap(), wx.DefaultPosition, wx.Size( 10,10 ), 0|wx.NO_BORDER )
        self.bakbm.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
        Hsz1.Add( self.bakbm, 0, wx.ALIGN_CENTER|wx.EXPAND, 5 )
        
        
        VSz1.Add( Hsz1, 0, wx.EXPAND, 5 )
        
        VBz = wx.BoxSizer( wx.VERTICAL )
        
        self.pbdy = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.STATIC_BORDER )
        VPz = wx.BoxSizer( wx.VERTICAL )

        
        
        Hsz2 = wx.BoxSizer( wx.HORIZONTAL )

        haft = khayyam.jalali_date.PERSIAN_WEEKDAY_ABBRS

        for i in range(7):
                    self.m_staticText23 = wx.StaticText( self.pbdy, wx.ID_ANY, haft[i], wx.DefaultPosition, wx.Size( 9,-1 ), wx.ALIGN_CENTRE )
                    self.m_staticText23.Wrap( -1 )
                    Hsz2.Add( self.m_staticText23, 1, 0, 5 )
        
        
        VPz.Add( Hsz2, 0, wx.EXPAND, 5 )
        
        gSizer2 = wx.GridSizer( 6, 7, 2, 2 )

        labl=self.calntxt(self.sallat,self.mahlat)
        i = 0
        self.caltext=[]

        for row in range(6):
                    for clm in range(7):
                        self.caltext.append(buttons.GenButton( self.pbdy, wx.ID_ANY, e2f(labl[i]), wx.DefaultPosition, wx.Size( -1,-1 ), style=wx.BORDER_NONE ))
                        gSizer2.Add( self.caltext[i], 0, wx.EXPAND, 0 )
                        self.caltext[i].SetLayoutDirection(1)
                        #self.caltext[i].Bind(wx.EVT_BUTTON,self.Zdate)
                        #print labl[i],type(labl[i])
                        self.forbakgrnd( i , row , clm , labl[i])
                        i = i + 1
        
        
        VPz.Add( gSizer2, 1, wx.EXPAND, 5 )
        
        
        self.pbdy.SetSizer( VPz )
        self.pbdy.Layout()
        VPz.Fit( self.pbdy )
        VBz.Add( self.pbdy, 1, 0, 0 )
        
        
        VSz1.Add( VBz, 1, wx.EXPAND, 5 )
        
        VFz = wx.BoxSizer( wx.VERTICAL )

        self.rooz = int(khayyam.JalaliDate.today().strftime('%d'))
        self.irooz = self.rooz

        a = self.calnom(self.sallat,self.mahlat,self.rooz)

        if a > 0:
            self.caltext[a].SetBackgroundColour( wx.Colour( 70, 170, 240 ) )

        now =  khayyam.JalaliDate.today().strftime('%x')
        txt = u'امروز'
        
        self.m_staticText22 = wx.StaticText( self, wx.ID_ANY, now+':'+txt, wx.DefaultPosition, wx.DefaultSize, 0 )
        self.m_staticText22.Wrap( -1 )
        VFz.Add( self.m_staticText22, 0, wx.ALIGN_CENTER|wx.ALL, 5 )
        
        
        VSz1.Add( VFz, 0, wx.ALIGN_CENTER_HORIZONTAL, 5 )
        
        
        self.SetSizer( VSz1 )
        self.Layout()
        
        # Connect Events
        self.bakbm.Bind( wx.EVT_BUTTON, self.left )
        self.nxtbm.Bind( wx.EVT_BUTTON, self.right )
Esempio n. 11
0
 def firstweekofmonth(self,year,month):
     #print int(khayyam.JalaliDate(year,month,1).strftime('%w'))
     return int(khayyam.JalaliDate(year,month,1).strftime('%w'))
Esempio n. 12
0
    def __init__( self, parent , year , month ):
        wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 400,200 ), style = wx.TAB_TRAVERSAL )

        self.SetLayoutDirection(2)
        bSizer13 = wx.BoxSizer( wx.VERTICAL )
        
        bSizer16 = wx.BoxSizer( wx.HORIZONTAL )

        if year==-1:
            sal=khayyam.JalaliDate.today().strftime('%N')
            self.sallat = int(khayyam.JalaliDate.today().strftime('%Y'))
        else:
            sal = khayyam.JalaliDate(year=year).strftime('%N')
            self.sallat = int(khayyam.JalaliDate(year=year).strftime('%Y'))
        if month==-1:
             mah=khayyam.JalaliDate.today().strftime('%B')
             self.mahlat = int(khayyam.JalaliDate.today().strftime('%m'))
        else:
             mah = khayyam.JalaliDate(month=month).strftime('%B')
             self.mahlat = int(khayyam.JalaliDate(month=month).strftime('%m'))
        
        
        self.w = self.firstweekofmonth(self.sallat,self.mahlat)

        
        self.m_bpButton1 = wx.BitmapButton( self, wx.ID_ANY,  R.GetBitmap(), wx.DefaultPosition, wx.Size( 15,15 ), wx.BU_AUTODRAW )
        bSizer16.Add( self.m_bpButton1, 0, wx.ALIGN_CENTER, 5 )

        self.m_button1 = buttons.GenButton(self, wx.ID_ANY, mah+' '+sal,wx.DefaultPosition, wx.Size( -1,20 ) ,style=wx.BORDER_NONE)
        self.m_button1.SetLayoutDirection(1)
        #print self.m_button1.GetPosition()
                
        
        #self.m_button1 = wx.Button( self, wx.ID_ANY, mah+' '+sal, wx.DefaultPosition, wx.Size( -1,20 ), wx.BU_BOTTOM )
        bSizer16.Add( self.m_button1, 1, wx.ALL, 5 )
        
        self.m_bpButton2 = wx.BitmapButton( self, wx.ID_ANY,  L.GetBitmap(), wx.DefaultPosition, wx.Size( 15,15 ), wx.BU_AUTODRAW )
        bSizer16.Add( self.m_bpButton2, 0, wx.ALIGN_CENTER, 5 )
        
        
        bSizer13.Add( bSizer16, 1, wx.EXPAND, 5 )
        
        bSizer22 = wx.BoxSizer( wx.HORIZONTAL )

        haft = khayyam.jalali_date.PERSIAN_WEEKDAY_NAMES

        for i in range(7):
            self.m_staticText23 = wx.StaticText( self, wx.ID_ANY, haft[i], wx.DefaultPosition, wx.Size( 35,-1 ), wx.ALIGN_CENTRE )
            self.m_staticText23.Wrap( -1 )
            bSizer22.Add( self.m_staticText23, 1, wx.ALL|wx.EXPAND, 5 )

                
        bSizer13.Add( bSizer22, 1, wx.EXPAND, 5 )
        
        self.gSizer2 = wx.GridSizer( 6, 7, 1, 1 )

        labl=self.calntxt(self.sallat,self.mahlat)
        #print labl
        i=0
        self.caltext=[]

        for row in range(6):
            for clm in range(7):

                self.caltext.append( wx.Button( self, wx.ID_ANY, labl[i], wx.DefaultPosition, wx.Size( 35,15 ),wx.NO_BORDER ))
                self.gSizer2.Add( self.caltext[i], 0, wx.EXPAND, 0 )
                                
                if clm == 6:
                    self.caltext[i].SetBackgroundColour( wx.Colour( 0, 238, 0 ) )
                else:
                    self.caltext[i].SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW  ) )

                    if row == 0  and int(labl[i]) > 7 or row >=  4 and int(labl[i]) < 13:
                        self.caltext[i].SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
                    else:
                        self.caltext[i].SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNTEXT ) )
                i= i+1

                
        rooz = int(khayyam.JalaliDate.today().strftime('%d'))
        
        a=self.calnom(self.sallat,self.mahlat,rooz)
        
        if a > 0:
            self.caltext[a].SetBackgroundColour( wx.Colour( 70, 170, 240 ) )

        
        now = khayyam.JalaliDate.today().strftime('%x')
        txt = u':ÇãÑæÒ'
        bSizer13.Add( self.gSizer2, 5, wx.EXPAND, 5 )
        
        bSizer18 = wx.BoxSizer( wx.VERTICAL )
        
        self.m_staticText22 = wx.StaticText( self, wx.ID_ANY, txt+now, wx.DefaultPosition, wx.DefaultSize, 0 )
        self.m_staticText22.Wrap( -1 )
        bSizer18.Add( self.m_staticText22, 0, wx.ALIGN_CENTER|wx.ALL, 5 )
        
        
        bSizer13.Add( bSizer18, 1, wx.EXPAND, 5 )
        
        
        self.SetSizer( bSizer13 )
        self.Layout()

        self.m_bpButton1.Bind( wx.EVT_BUTTON, self.Onleft )
        self.m_bpButton2.Bind( wx.EVT_BUTTON, self.Onright )
        self.m_button1.Bind( wx.EVT_BUTTON, self.Onmonth )
Esempio n. 13
0
    def __init__( self, parent , years  ):
        wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 400,200 ), style = wx.TAB_TRAVERSAL )

        self.SetLayoutDirection(2)
        bSizer15 = wx.BoxSizer( wx.VERTICAL )
        
        bSizer16 = wx.BoxSizer( wx.HORIZONTAL )
        y = int(years / 10)*10
        yers = [y+i for i in range(12) ]

        self.sal=khayyam.JalaliDate(year=yers[0]).strftime('%N')
        self.salbd=khayyam.JalaliDate(year=yers[-1]).strftime('%N')
        self.sallat = int(khayyam.JalaliDate(year=yers[0]).strftime('%Y'))
        self.sallatbd = int(khayyam.JalaliDate(year=yers[-1]).strftime('%Y'))
        
        self.m_bpButton1 = wx.BitmapButton( self, wx.ID_ANY,  R.GetBitmap(), wx.DefaultPosition, wx.Size( 15,15 ), wx.BU_AUTODRAW )
        bSizer16.Add( self.m_bpButton1, 0, wx.ALIGN_CENTER, 5 )
        
        #self.m_staticText18 = buttons.GenButton( self, wx.ID_ANY, self.sal+u'-'+self.salbd, wx.DefaultPosition, wx.DefaultSize, style=wx.BORDER_NONE )
        self.m_staticText18 = wx.StaticText( self, wx.ID_ANY, self.sal+u'-'+self.salbd, wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTRE )

        self.m_staticText18.SetLayoutDirection(1)
        self.m_staticText18.Wrap( -1 )
        bSizer16.Add( self.m_staticText18, 1, wx.ALIGN_CENTER|wx.ALL, 1 )
        
        self.m_bpButton2 = wx.BitmapButton( self, wx.ID_ANY, L.GetBitmap(), wx.DefaultPosition, wx.Size( 15,15 ), wx.BU_AUTODRAW )
        bSizer16.Add( self.m_bpButton2, 0, wx.ALIGN_CENTER, 5 )

        #self.m_button2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_INFOBK ) )
        #self.m_button2.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) )

        
        bSizer15.Add( bSizer16, 1, wx.EXPAND, 5 )
        
        gSizer1 = wx.GridSizer( 3, 4, 0, 0 )

        
        
        self.yercal = []
        i = 0
        YID = range(12)

        for yer in yers:
            self.yercal.append( wx.Button( self, YID[i], e2f(unicode(yer)), wx.DefaultPosition, wx.DefaultSize, 0 ))
                       
            gSizer1.Add( self.yercal[i], 0, wx.EXPAND, 5 )
                
            self.yercal[i].Bind( wx.EVT_BUTTON, self.Onmonth )
            i = i + 1
                        
                        
        now = khayyam.JalaliDate.today().strftime('%x')
        txt = u'ÇãÑæÒ'
        
        bSizer15.Add( gSizer1, 5, wx.EXPAND, 1 )
        
        bSizer17 = wx.BoxSizer( wx.VERTICAL )
        
        self.m_staticText19 = wx.StaticText( self, wx.ID_ANY, txt+now, wx.DefaultPosition, wx.DefaultSize, 0 )
        self.m_staticText19.Wrap( -1 )
        bSizer17.Add( self.m_staticText19, 0, wx.ALIGN_CENTER, 1 )
        
        
        bSizer15.Add( bSizer17, 1, wx.EXPAND, 5 )
        
        
        self.SetSizer( bSizer15 )
        self.Layout()

        self.m_bpButton1.Bind( wx.EVT_BUTTON, self.Onleft )
        self.m_bpButton2.Bind( wx.EVT_BUTTON, self.Onright )
Esempio n. 14
0
    def __init__( self, parent , year  ):
        wx.Panel.__init__ ( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 400,200 ), style = wx.TAB_TRAVERSAL )

        self.SetLayoutDirection(2)
        bSizer15 = wx.BoxSizer( wx.VERTICAL )
        
        bSizer16 = wx.BoxSizer( wx.HORIZONTAL )

        self.sal=khayyam.JalaliDate(year=year).strftime('%N')
        self.sallat = int(khayyam.JalaliDate(year=year).strftime('%Y'))
        
        self.m_bpButton1 = wx.BitmapButton( self, wx.ID_ANY,  R.GetBitmap(), wx.DefaultPosition, wx.Size( 15,15 ), wx.BU_AUTODRAW )
        bSizer16.Add( self.m_bpButton1, 0, wx.ALIGN_CENTER, 5 )
        
        self.m_staticText18 = buttons.GenButton( self, wx.ID_ANY, self.sal, wx.DefaultPosition, wx.DefaultSize, style=wx.BORDER_NONE )
        self.m_staticText18.SetLayoutDirection(1)
        #self.m_staticText18.Wrap( -1 )
        bSizer16.Add( self.m_staticText18, 1, wx.ALIGN_CENTER|wx.ALL, 5 )
        
        self.m_bpButton2 = wx.BitmapButton( self, wx.ID_ANY, L.GetBitmap(), wx.DefaultPosition, wx.Size( 15,15 ), wx.BU_AUTODRAW )
        bSizer16.Add( self.m_bpButton2, 0, wx.ALIGN_CENTER, 5 )

        #self.m_button2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_INFOBK ) )
        #self.m_button2.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) )

        
        bSizer15.Add( bSizer16, 1, wx.EXPAND, 5 )
        
        gSizer1 = wx.GridSizer( 3, 4, 0, 0 )

        mont = khayyam.jalali_date.PERSIAN_MONTH_NAMES

        self.moncal = []
        i = 0
        MID = range(12)

        for mah in range(12):
            self.moncal.append( wx.Button( self, MID[i], mont[mah+1], wx.DefaultPosition, wx.DefaultSize, 0 ))
                        
            gSizer1.Add( self.moncal[i], 0, wx.EXPAND, 5 )
                
            self.moncal[i].Bind( wx.EVT_BUTTON, self.Onmonth )
            i = i + 1
                        
                        
        now = khayyam.JalaliDate.today().strftime('%x')
        txt = u'ÇãÑæÒ'
        
        bSizer15.Add( gSizer1, 5, wx.EXPAND, 1 )
        
        bSizer17 = wx.BoxSizer( wx.VERTICAL )
        
        self.m_staticText19 = wx.StaticText( self, wx.ID_ANY, txt+now, wx.DefaultPosition, wx.DefaultSize, 0 )
        self.m_staticText19.Wrap( -1 )
        bSizer17.Add( self.m_staticText19, 0, wx.ALIGN_CENTER, 1 )
        
        
        bSizer15.Add( bSizer17, 1, wx.EXPAND, 5 )
        
        
        self.SetSizer( bSizer15 )
        self.Layout()

        self.m_bpButton1.Bind( wx.EVT_BUTTON, self.Onleft )
        self.m_bpButton2.Bind( wx.EVT_BUTTON, self.Onright )
        self.m_staticText18.Bind( wx.EVT_BUTTON, self.Onsal )