2012-11-13 3 views
-1

제 응용 프로그램에서는 테이블 뷰에서 날짜 값을 취하는 for 루프가 있습니다. Tableview에서 삽입 된 경우 동일한 날짜가 한 번만 고려되는 반면, 현재 날짜가 두 번 이상 삽입되면 매번 계산됩니다.for 루프는 한 번만 항목을 계산합니다.

for (FesteGruppo *festeGruppoEntity in arrayController2_.selectedObjects) { 
       if ([festeGruppoEntity.stato intValue]==0) { 
        NSDateComponents *festeGruppoEntityComponents = [[NSCalendar currentCalendar] components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:festeGruppoEntity.data]; 
        NSString *nomeFesta = festeGruppoEntity.nome; 

        NSInteger annoFestaModificato = annoInizio1; 
        NSInteger meseFesta = [festeGruppoEntityComponents month]; 
        NSInteger giornoFesta = [festeGruppoEntityComponents day]; 

        for (annoInizio1=annoInizio1; annoFestaModificato<=annoFine1; ++annoFestaModificato) { 

         NSDateComponents *components = [[NSDateComponents alloc] init]; 

         [components setDay:giornoFesta]; 
         [components setMonth:meseFesta]; 
         [components setYear:annoFestaModificato]; 
         NSCalendar *gregorian = [[NSCalendar alloc] 
               initWithCalendarIdentifier:NSGregorianCalendar]; 
         NSDate *date = [gregorian dateFromComponents:components]; 

         NSString *valorePrimaFesta=[date descriptionWithCalendarFormat:@"%w" timeZone:nil locale:nil]; 



         //Festività compresa ripetuta. 
         int compInizio = [dataInizio compare:date]; 
         int compFine = [dataFine compare:date]; 



         if (compInizio==-1 && compFine==1) { 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 
         }else if(compInizio==-1 && compFine==0){ 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 
         }else if(compInizio==-0 && compFine==0){ 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 
         }else if (compInizio==-0 && compFine==1){ 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 
         } 
         else { 
          int giornoSettimana = [valorePrimaFesta intValue]; 

          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaNonCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 


         } 
        } 
       } else { 

        NSDateComponents *festeGruppoEntityComponents = [[NSCalendar currentCalendar] components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:festeGruppoEntity.data]; 
        NSString *nomeFesta = festeGruppoEntity.nome; 
        NSInteger annoFesta = [festeGruppoEntityComponents year]; 
        NSInteger meseFesta = [festeGruppoEntityComponents month]; 
        NSInteger giornoFesta = [festeGruppoEntityComponents day]; 

        //for (annoInizio1=annoInizio1; annoFesta<=annoInizio1; ++annoFesta) { 

         NSDateComponents *components = [[NSDateComponents alloc] init]; 



         [components setDay:giornoFesta]; 
         [components setMonth:meseFesta]; 
         [components setYear:annoFesta]; 
         NSCalendar *gregorian = [[NSCalendar alloc] 
               initWithCalendarIdentifier:NSGregorianCalendar]; 
         NSDate *date = [gregorian dateFromComponents:components]; 

         NSString *valorePrimaFesta=[date descriptionWithCalendarFormat:@"%w" timeZone:nil locale:nil]; 
         //Festività compresa ripetuta. 
         int compInizio = [dataInizio compare:date]; 
         int compFine = [dataFine compare:date]; 

         if (compInizio==-1 && compFine==1) { 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]]; 
         }else if(compInizio==-1 && compFine==0){ 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]]; 
         }else if(compInizio==-0 && compFine==0){ 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]]; 
         }else if (compInizio==-0 && compFine==1){ 
          int giornoSettimana = [valorePrimaFesta intValue]; 
          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           --domenica; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           --lunedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           --martedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           --mercoledi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           --giovedi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           --venerdi; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           --sabato; 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]]; 
         } 
         else { 
          int giornoSettimana = [valorePrimaFesta intValue]; 

          NSString *ggSett = [NSString stringWithFormat:@""]; 

          if (giornoSettimana==0) { 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")]; 
          } else if (giornoSettimana==1){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")]; 
          } else if (giornoSettimana==2){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")]; 
          } else if (giornoSettimana==3){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")]; 
          } else if (giornoSettimana==4){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")]; 
          } else if (giornoSettimana==5){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")]; 
          } else if (giornoSettimana==6){ 
           ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")]; 
          } 

          [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaNonCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]]; 


         } 
        //} 
       } 



      } 
+1

날짜를 저장하는 데 사용되는 데이터 형식은 무엇입니까? – trojanfoe

+0

데이터 형식은 NSDate입니다. – Andrea

답변

0

테이블의 모든 개체를 NSMutableSet에 넣습니다. 그런 다음 세트를 반복합니다.

+0

나는주기를 생각하고 있었지만 한 번만 날짜를 말할 수있는 방법을 모른다. – Andrea

+0

@Andrea 변경 가능한 세트를 사용하는 이유는 세트의 요소가 고유하다는 것이다. 동일한 값을 세 번 더하면, 한 번만 세트에서 볼 수 있습니다. "세트 반복"부분은 데이터를 다시 가져 오는 것입니다. 그렇게하지 않아도됩니다. 예를 들어'-sortedArrayUsingDescriptors :'를 사용하여 객체를 사용자가 제공 한 디스크립터에 따라 정렬 된 배열로 가져올 수 있습니다. – Caleb

+0

내가 위대한 프로그래머가 아니란 것을 확실히 알고 있겠지만, 위에 입력 한 코드를 사용하여 예제를 만들 수 있습니까? – Andrea

관련 문제