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
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
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()
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()
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()
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()
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 )
def firstweekofmonth(self,year,month): #print int(khayyam.JalaliDate(year,month,1).strftime('%w')) return int(khayyam.JalaliDate(year,month,1).strftime('%w'))
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 )
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 )
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 )