I have some 6 UILabels
which will show the date like below:
Jan,2016 (label)
(button) < **27Dec 28Dec 29Dec 30Dec 31Dec 1Jan** >(Button)
Also I am having two arrow UIButton
at both side when user can move to back date or previous date. And i have one lable to show the current month based on my date showing
Here is my full code:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
firstdate = [NSDate date];
firstdate = [NSDate dateWithTimeInterval:-(5*86400) sinceDate:firstdate];
[self dateChange];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM,yyyy"]; dateLabel.text = [dateFormat stringFromDate:[NSDate date]];
dateLabel.text = [dateFormat stringFromDate: firstdate];
}
-(void)dateChange
{
NSArray *labelArray = @[flabel, slabel, tlabel, folabel, fivlabel,sixlabel];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
dateFormatter.dateFormat = @"ddMMM";
for (NSInteger i = 0; i < 6; ++i) {
NSDate *nextDate = [calendar dateByAddingUnit: NSCalendarUnitDay value:i toDate:firstdate options:nil];
UILabel *label = (UILabel *)labelArray[i];
label.text = [dateFormatter stringFromDate:nextDate];
if (i==5) {
dateFormatter.dateFormat=@"MMM,yyyy";
dateLabel.text = [[dateFormatter stringFromDate:nextDate] capitalizedString];
}
}
}
- (IBAction)calRight:(id)sender {
firstdate = [NSDate dateWithTimeInterval:86400 sinceDate:firstdate];
[self dateChange];
}
- (IBAction)calLeft:(id)sender {
firstdate = [NSDate dateWithTimeInterval:-86400 sinceDate:firstdate];
[self dateChange];
}
So what I need in .For example like says - today is Jan 1
.so if user open my app they will seeJan 1
at last date
followed by previous december date
at back like I mention above .
So in that case if user on current date
means like Jan1
means then my Rightbutton
should be disabled
. At the same time when user use left button
to go november month
menas then my right button
should be enabled
Only my rightbutton
should be disabled
when user in current date
.
Please help me to solve I have an idea that !
if (some condition)
[leftBtn setEnabled:NO];
else
[leftBtn setEnabled:YES];
But I am not sure about condition and code.
Change your method dateChange with bellow code and also btnRight is your right side button so change name whatever you have give for it.
-(void)dateChange
{
NSArray *labelArray = @[flabel, slabel, tlabel, folabel, fivlabel,sixlabel];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
dateFormatter.dateFormat = @"ddMMM";
for (NSInteger i = 0; i < labelArray.count; ++i) {
NSDate *nextDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:i toDate:firstdate options:nil];
UILabel *label = (UILabel *)labelArray[i];
label.text = [dateFormatter stringFromDate:nextDate];
if (i==(labelArray.count-1)) {
dateFormatter.dateFormat=@"MMM,yyyy";
dateLabel.text = [[dateFormatter stringFromDate:nextDate] capitalizedString];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
if ([[dateFormat stringFromDate:nextDate] isEqualToString:[dateFormat stringFromDate:[NSDate date]]])
btnRight.enabled = false; //It's the same day
else
btnRight.enabled = true;
}
}
}