年月日选取器
#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController
@property (nonatomic,retain)UILabel *secLabel;
@property (nonatomic, retain)UILabel *showLabel;
@property (nonatomic, retain)UIDatePicker * myDatePicker;
@end
#import "RootViewController.h"
@interface RootViewController ()
@end
@implementation RootViewController
-(void)dealloc
{
[_showLabel release];
[_myDatePicker release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self DateTime];
// [self viewTime];
}
- (void) DateTime
{
// UIDatePicker 日期/时间选取器(滚轮)
// 设置时间
float oneYearTime = 0;
// 给myDatePicker添加颜色
self.myDatePicker.backgroundColor = [UIColor whiteColor];
// 事件选择器
self.myDatePicker = [[UIDatePicker alloc] init];
self.myDatePicker.center = self.view.center;
self.myDatePicker.datePickerMode = UIDatePickerModeDate;
// // 添加事件, 监听值的改变
[self.myDatePicker addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:(UIControlEventValueChanged)];
// 获取当前时间
NSDate *currentDate = self.myDatePicker.date;
// 当前显示的时间
NSDate *oneYearFromToday = [currentDate dateByAddingTimeInterval:oneYearTime];
// 所能显示的最大时间
NSDate *twoYearFromToday = [currentDate dateByAddingTimeInterval:50 * oneYearTime ];
// 最小可选时间
self.myDatePicker.minimumDate = oneYearFromToday;
// 最大可选时间
self.myDatePicker.maximumDate = twoYearFromToday;
/*
结论:
如果两个日期范围属性中任何一个未被设置, 则默认行为将会允许用户选择过去或未来的任意日期
*/
[self.view addSubview:self.myDatePicker];
// 表盘滚动到你指定的日期 2
// [self.myDatePicker setDate:oneYearFromToday animated:YES];
// // 设置分钟间隔 3
// self.myDatePicker.datePickerMode = UIDatePickerModeCountDownTimer;
// self.myDatePicker.minuteInterval = 15;
// UIDatePicker
// 设置日期选择控件的地区, 选用 UIDatePickerModeDateAndTime 4
[self.myDatePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_Hans_CN"]]; // 中文
// [self.myDatePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_SC"]]; // 英文
// timeZone 6
// 设置DatePicker的时区(默认设置)
[self.myDatePicker setTimeZone:[NSTimeZone defaultTimeZone]];
// datePickerMode, 显示小时, 分钟和AM/PM, 7
// [self.myDatePicker setDatePickerMode:UIDatePickerModeTime];
// 显示年月日
// [self.myDatePicker setDatePickerMode:UIDatePickerModeDate];
// 显示日期, 小时, 分钟, 和AM/PM
// [self.myDatePicker setDatePickerMode:UIDatePickerModeDateAndTime];
}
- (void)datePickerDateChanged:(UIDatePicker *)dataPicker
{
[self clicked:dataPicker];
}
- (void)clicked:(id)sender {
// 获取用户通过UIDatePicker设置的日期和时间
NSDate *selected = [self.myDatePicker date];
// 创建一个日期格式器
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// 为日期格式器设置格式字符串
[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm"];
NSString *destDateString = [dateFormatter stringFromDate:selected];
NSString *message = [NSString stringWithFormat:@"你选择的日期是:%@", destDateString ];
// 创建一个UIAlertView对象(警告框), 并通过该警告框显示用户选择的日期, 时间
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"日期和时间" message:message delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
}
// 将timer, t定义为全局变量
NSTimer *timer;
static int t = 0;
- (void)viewTime
{
self.secLabel = [[UILabel alloc]initWithFrame:CGRectMake(140, 500, 100, 40)];
[self.view addSubview:self.secLabel];
// 设置Label的字体大小
self.secLabel.font = [UIFont systemFontOfSize:30];
self.secLabel.textColor = [UIColor redColor];
self.myDatePicker.backgroundColor = [UIColor whiteColor];
// 事件选择器
self.myDatePicker = [[UIDatePicker alloc] init];
// 将myDatePicker试图放到屏幕的中间
self.myDatePicker.center = self.view.center;
// 选择myDatePicker的样式
[self.myDatePicker setDatePickerMode: UIDatePickerModeCountDownTimer];
// 将myDatePicker添加到当前视图上
[self.view addSubview:self.myDatePicker];
// 计时器, 每1秒调用tickDown方法一次, 该方法是类方法
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tickDown) userInfo:nil repeats:YES];
[timer fire];
}
- (void)tickDown
{
t += 30;
self.secLabel.text = [NSString stringWithFormat:@"%d 秒", t % 60];
[self.myDatePicker setCountDownDuration:t];
}