菜鸟教程小白 发表于 2022-12-13 01:32:33

iphone - 如何将日期的年份更改为当前年份?


                                            <p><p>我有一个类似下面的数组</p>

<pre><code>Birthdates(
&#34;03/12/2013&#34;,
&#34;03/12/2013&#34;,
&#34;08/13/1990&#34;,
&#34;12/09/1989&#34;,
&#34;02/06&#34;,
&#34;09/08&#34;,
&#34;03/02/1990&#34;,
&#34;08/22/1989&#34;,
&#34;03/02&#34;,
&#34;05/13&#34;,
&#34;10/16&#34;,
&#34;07/08&#34;,
&#34;08/31/1990&#34;,
&#34;04/14/1992&#34;,
&#34;12/15/1905&#34;,
&#34;08/14/1989&#34;,
&#34;10/07/1987&#34;,
&#34;07/25&#34;,
&#34;07/17/1989&#34;,
&#34;03/24/1987&#34;,
&#34;07/28/1988&#34;,
&#34;01/21/1990&#34;,
&#34;10/13&#34;
)
</code></pre>

<p>都是NSString</p>

<p>现在我想从中创建另一个数组,如果该日期即将到来,并且如果日期已经过去,那么所有年份都应该是 2013 年,然后将年份更改为 2014 年?</p>

<p>在上面的句子中,我们没有考虑年份,我们只考虑日和月,然后看看今年是否已经过去了?</p>

<p>例如,如果日期是“12/15/1905”,则将其转换为另一个数组,例如“12/15/2013”
但如果日期类似于“01/01/1990”,则将其转换为另一个数组,如“01/01/2014”
因为它已经过了当前日期
请帮助提前谢谢你:)</p>

<p>我更愿意做一些代码不仅适用于 2013 年和 2014 年的事情,它也应该适用于 future 的 future 。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这段代码会为你做的:</p>

<pre><code>NSArray *Birthdates=@[
                      @&#34;03/12/2013&#34;,
                      @&#34;03/12/2013&#34;,
                      @&#34;08/13/1990&#34;,
                      @&#34;12/09/1989&#34;,
                      @&#34;02/02&#34;,
                      @&#34;09/08&#34;,
                      @&#34;03/02/1990&#34;,
                      @&#34;08/22/1989&#34;,
                      @&#34;03/02&#34;];
NSCalendar *gregorian = [ initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = ];
NSInteger currentYear = ;

NSMutableArray *newBirthDates=;

for(NSString *str in Birthdates){
    NSArray *array=;
    if(array.count==2){
      NSString *tempString=;
      NSDateFormatter *dateFormatter=;
      ;
      NSDate *date=;
      if ([ isGreaterThanOrEqualTo:date]) {
            NSLog(@&#34;passed-&gt;%@ *** %@&#34;,date, str);
            ];
      }
      ;
    }
    else{
      NSString *dateString=,array,currentYear];
      NSDateFormatter *dateFormatter=;
      ;
      NSDate *date=;
      if ([ isGreaterThanOrEqualTo:date]) {
            dateString=,array,currentYear+1];
      }

      ;
    }
}
NSLog(@&#34;%@&#34;,newBirthDates);
</code></pre>

<p>这是输出:</p>

<pre><code>DocumentBased (
    &#34;03/12/2014&#34;,
    &#34;03/12/2014&#34;,
    &#34;08/13/2013&#34;,
    &#34;12/09/2013&#34;,
    &#34;02/02/2014&#34;,
    &#34;09/08/2013&#34;,
    &#34;03/02/2014&#34;,
    &#34;08/22/2013&#34;,
    &#34;03/02/2014&#34;
)
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 如何将日期的年份更改为当前年份?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15378836/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15378836/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 如何将日期的年份更改为当前年份?