کد:
int tt=0;
int sYear=0;
int sD=0;
int sMonth=0;
int sDay=0;

int dWM[12]={0,	31,59,90,120,151,181,212,243,273,304,334};
int dWKM[12]={0,31,60,91,121,152,182,213,244,274,305,335};
int IM[12]={31,31,31,31,31,31,30,30,30,30,30,29};
int IKM[12]={31,31,31,31,31,31,30,30,30,30,30,30};
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);


}

void loop() {
  
Miladitoshamsi(2015, 2, 28);
Miladitoshamsi(2016, 2, 28);
Miladitoshamsi(2017, 2, 28);
Miladitoshamsi(2015, 3, 20);
Miladitoshamsi(2016, 3, 19);
Miladitoshamsi(2017, 3, 20);
Miladitoshamsi(2015, 3, 21);
Miladitoshamsi(2016, 3, 20);
Miladitoshamsi(2017, 3, 21);
Miladitoshamsi(2015, 9, 22);
Miladitoshamsi(2016, 9, 21);
Miladitoshamsi(2017, 9, 22);
Miladitoshamsi(2015, 9, 23);
Miladitoshamsi(2016, 9, 22);
Miladitoshamsi(2017, 9, 23);
Miladitoshamsi(2015, 12, 23);
Miladitoshamsi(2016, 12, 22);
Miladitoshamsi(2017, 12, 23);

                              
                              



delay (50000);

}

      void  Miladitoshamsi(int iYear, int iMonth, int iDay) {
        
                                         Serial.println("iyear= ");
                                 Serial.println(iYear);

                                 Serial.println("iMonth= ");
                                 Serial.println( iMonth);

                                 Serial.println("iDay= ");
                                 Serial.println(iDay);
   
                              
                              if(iYear==((iYear/4)*4) ){
 
                                                          if((iMonth>2&iDay>19)|| iMonth>3){
                                                             sYear=iYear-621;
                                                             tt=dWKM[iMonth-1]+iDay-80;
                                                               

                                                            }
                                                            else
                                                            {
                                                              sYear=iYear-622;
                                                             tt=dWKM[iMonth-1]+iDay+285;
                                  
                                                                                                }
                                                                      }
                                    else
                                    {
                                      //  tt=(iYear/4)+(iYear*365)+(dWM[(iMonth-1)]+iDay); 
    
      
                        if((iMonth>2&iDay>20)|| iMonth>3){
                           sYear=iYear-621;
                            tt=dWM[iMonth-1]+iDay-80;

                          }
                          else
                          {
                            sYear=iYear-622;
                           tt=dWM[iMonth-1]+iDay+285;

                          }
                      
                  }
                  Serial.println("tt=");
                  Serial.println(tt);
                  
                  
                   sD=tt;
                   if( sD> 185){
                    
                   sMonth=7+((sD-186)/30);
                   sDay=sD-(185+(((sD-186)/30)*30));
                                                 
                                                  if((iYear-1)==(((iYear-1)/4)*4) & iMonth<4){
                                                    sD=sD;
                                                     sMonth=7+((sD-186)/30);
                                                     sDay=1+sD-(185+(((sD-186)/30)*30));
                                                  
                                                  }
                                                  
                  
                  
                  
                  }
                 if( sD< 186){
                  
                sMonth=((sD)/31)+1;
                sDay=(1+sD-((sMonth-1)*31));
                
                
                }
                String stringOne=String(sYear)+"/"+String(sMonth)+"/"+String(sDay);
                
                
                                                 Serial.println("Shamsi=   ");
                
                Serial.print(stringOne);

                                                 Serial.println("  ");
                                                 
                                                 
                                                 delay (500);
                
                        
                        
                        
        
      }