2012-11-13 109 views
-1

在我的應用程序中,我有一個for循環,它從tableview中獲取日期值。我希望如果在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