From 6b6c0cebff891b797c3cb6b99218b63b04d4c922 Mon Sep 17 00:00:00 2001
From: jgzhou <996155731@qq.com>
Date: Fri, 09 Apr 2021 03:10:06 +0000
Subject: [PATCH] 完善
---
Lunar/Lunar.xcodeproj/project.pbxproj | 8 --
Lunar/Lunar/ViewController.m | 193 ++++++++++++++++++++++++++++++++++++++---------
2 files changed, 154 insertions(+), 47 deletions(-)
diff --git a/Lunar/Lunar.xcodeproj/project.pbxproj b/Lunar/Lunar.xcodeproj/project.pbxproj
index ff1aca5..724e58b 100644
--- a/Lunar/Lunar.xcodeproj/project.pbxproj
+++ b/Lunar/Lunar.xcodeproj/project.pbxproj
@@ -42,13 +42,6 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 076D1B56261713D800087D45 /* Util */ = {
- isa = PBXGroup;
- children = (
- );
- path = Util;
- sourceTree = "<group>";
- };
07F51C1A2615C1A600D30158 = {
isa = PBXGroup;
children = (
@@ -93,7 +86,6 @@
07F51C462615C33A00D30158 /* Tool */ = {
isa = PBXGroup;
children = (
- 076D1B56261713D800087D45 /* Util */,
07F51C472615C34A00D30158 /* Lunar.h */,
07F51C482615C34A00D30158 /* Lunar.m */,
);
diff --git a/Lunar/Lunar/ViewController.m b/Lunar/Lunar/ViewController.m
index a45261e..8d595f6 100644
--- a/Lunar/Lunar/ViewController.m
+++ b/Lunar/Lunar/ViewController.m
@@ -8,7 +8,20 @@
#import "ViewController.h"
#import "Lunar.h"
+#define kWidth [UIScreen mainScreen].bounds.size.width
+#define kHeight [UIScreen mainScreen].bounds.size.height
+#define kStatusBarHeight [UIApplication sharedApplication].statusBarFrame.size.height
+
@interface ViewController ()
+
+@property (nonatomic, strong) NSDateFormatter *dateFormatter;
+
+@property (nonatomic, strong) UIButton *dateBtn;
+@property (nonatomic, strong) UITextView *textView;
+@property (nonatomic, strong) UIDatePicker *picker;
+@property (nonatomic, strong) UIButton *cancelBtn;
+@property (nonatomic, strong) UIButton *confirmBtn;
+
@end
@@ -18,78 +31,180 @@
{
[super viewDidLoad];
- self.view.backgroundColor = [UIColor redColor];
+ self.view.backgroundColor = [UIColor whiteColor];
- Solar *d = [Solar fromYmdHms:1901 :1 :1 :0 :0 :0];
-// Solar *d = [Solar fromDate:[NSDate new]];
- NSLog(@"公历:%@", [d toFullString]);
+ [self.view addSubview:self.dateBtn];
+ [self.view addSubview:self.textView];
+
+ [self buildUI:[NSDate date]];
+}
+
+- (void)dateClick:(UIButton *)sender
+{
+ [self.view addSubview:self.picker];
+ [self.dateBtn addSubview:self.cancelBtn];
+ [self.dateBtn addSubview:self.confirmBtn];
+}
+
+- (void)actionBtnClick:(UIButton *)sender
+{
+ [self.picker removeFromSuperview];
+ [self.cancelBtn removeFromSuperview];
+ [self.confirmBtn removeFromSuperview];
+ if (sender.tag == 2) {
+ [self buildUI:self.picker.date];
+ }
+}
+
+- (void)buildUI:(NSDate *)date
+{
+ NSString *dateStr = [self.dateFormatter stringFromDate:date];
+ [self.dateBtn setTitle:dateStr forState:UIControlStateNormal];
+
+ NSString *dataStr = [self buildData:date];
+ self.textView.text = dataStr;
+}
+
+- (NSString *)buildData:(NSDate *)date
+{
+ NSMutableString *str = [NSMutableString string];
+
+ Solar *d = [Solar fromDate:date];
Lunar *l = [d getLunar];
+ [str appendFormat:@"农历:%@\n", [l toString]];
+ [str appendFormat:@"\n年:%@年 属%@ %@\n", [l getYearInGanZhi], [l getYearShengXiao], [l getYearNaYin]];
+ [str appendFormat:@"\n月:%@月 属%@ %@\n", [l getMonthInGanZhi], [l getMonthShengXiao], [l getMonthNaYin]];
+ [str appendFormat:@"\n日:%@日 属%@ %@\n", [l getDayInGanZhi], [l getDayShengXiao], [l getDayNaYin]];
+ [str appendFormat:@"\n儒略日:%@\n", @([d getJulianDay])];
- NSLog(@"农历:%@", [l toString]);
- NSLog(@"年:%@年 属%@ %@", [l getYearInGanZhi], [l getYearShengXiao], [l getYearNaYin]);
- NSLog(@"月:%@月 属%@ %@", [l getMonthInGanZhi], [l getMonthShengXiao], [l getMonthNaYin]);
- NSLog(@"日:%@日 属%@ %@", [l getDayInGanZhi], [l getDayShengXiao], [l getDayNaYin]);
- NSLog(@"儒略日:%@", @([d getJulianDay]));
- NSLog(@"月名:%@", [l getSeason]);
- NSLog(@"月相:%@", [l getYueXiang]);
- NSLog(@"物候:%@", [l getWuHou]);
- NSLog(@"六曜:%@", [l getLiuYao]);
- NSLog(@"彭祖百忌:%@ %@", [l getPengZuGan], [l getPengZuZhi]);
+ [str appendFormat:@"\n月名:%@\n", [l getSeason]];
+ [str appendFormat:@"\n月相:%@\n", [l getYueXiang]];
+ [str appendFormat:@"\n物候:%@\n", [l getWuHou]];
+ [str appendFormat:@"\n六曜:%@\n", [l getLiuYao]];
+ [str appendFormat:@"\n彭祖百忌:%@ %@\n", [l getPengZuGan], [l getPengZuZhi]];
NSArray *arrDayYi = [l getDayYi];
- NSLog(@"每日宜:%@", arrDayYi.count == 0?@"无":[arrDayYi componentsJoinedByString:@" "]);
+ [str appendFormat:@"\n每日宜:%@\n", arrDayYi.count == 0?@"无":[arrDayYi componentsJoinedByString:@" "]];
NSArray *arrDayJi = [l getDayJi];
- NSLog(@"每日忌:%@", arrDayJi.count == 0?@"无":[arrDayJi componentsJoinedByString:@" "]);
+ [str appendFormat:@"\n每日忌:%@\n", arrDayJi.count == 0?@"无":[arrDayJi componentsJoinedByString:@" "]];
NSArray *arrDayJiShen = [l getDayJiShen];
- NSLog(@"吉神宜趋:%@", arrDayJiShen.count == 0?@"无":[arrDayJiShen componentsJoinedByString:@" "]);
+ [str appendFormat:@"\n吉神宜趋:%@\n", arrDayJiShen.count == 0?@"无":[arrDayJiShen componentsJoinedByString:@" "]];
NSArray *arrDayXiongSha = [l getDayXiongSha];
- NSLog(@"凶煞宜忌:%@", arrDayXiongSha.count == 0?@"无":[arrDayXiongSha componentsJoinedByString:@" "]);
+ [str appendFormat:@"\n凶煞宜忌:%@\n", arrDayXiongSha.count == 0?@"无":[arrDayXiongSha componentsJoinedByString:@" "]];
- NSLog(@"相冲:%@日 冲%@", [l getDayShengXiao], [l getDayChongDesc]);
- NSLog(@"岁煞:%@", [l getDaySha]);
- NSLog(@"星宿:%@(%@)", [l getXiu], [l getXiuLuck]);
- NSLog(@"星宿歌诀:%@", [l getXiuSong]);
+ [str appendFormat:@"\n相冲:%@日 冲%@\n", [l getDayShengXiao], [l getDayChongDesc]];
+ [str appendFormat:@"\n岁煞:%@\n", [l getDaySha]];
+ [str appendFormat:@"\n星宿:%@(%@)\n", [l getXiu], [l getXiuLuck]];
+ [str appendFormat:@"\n星宿歌诀:%@\n", [l getXiuSong]];
- NSLog(@"贵神方位:阳贵神:%@ 阴贵神:%@", [l getDayPositionYangGuiDesc], [l getDayPositionYinGuiDesc]);
- NSLog(@"喜神方位:%@", [l getDayPositionXiDesc]);
- NSLog(@"福神方位:%@", [l getDayPositionFuDesc]);
- NSLog(@"财神方位:%@", [l getDayPositionCaiDesc]);
+ [str appendFormat:@"\n贵神方位:阳贵神:%@ 阴贵神:%@\n", [l getDayPositionYangGuiDesc], [l getDayPositionYinGuiDesc]];
+ [str appendFormat:@"\n喜神方位:%@\n", [l getDayPositionXiDesc]];
+ [str appendFormat:@"\n福神方位:%@\n", [l getDayPositionFuDesc]];
+ [str appendFormat:@"\n财神方位:%@\n", [l getDayPositionCaiDesc]];
- NSLog(@"本月胎神:%@", [l getMonthPositionTai]);
- NSLog(@"今日胎神:%@", [l getDayPositionTai]);
- NSLog(@"值星:%@", [l getZhiXing]);
- NSLog(@"十二天神:%@(%@)%@", [l getDayTianShen], [l getDayTianShenType], [l getDayTianShenLuck]);
- NSLog(@"空亡所值:年=%@ 月=%@ 日=%@", [l getYearXunKong], [l getMonthXunKong], [l getDayXunKong]);
+ [str appendFormat:@"\n本月胎神:%@\n", [l getMonthPositionTai]];
+ [str appendFormat:@"\n今日胎神:%@\n", [l getDayPositionTai]];
+ [str appendFormat:@"\n值星:%@\n", [l getZhiXing]];
+ [str appendFormat:@"\n十二天神:%@(%@)%@\n", [l getDayTianShen], [l getDayTianShenType], [l getDayTianShenLuck]];
+ [str appendFormat:@"\n空亡所值:年=%@ 月=%@ 日=%@\n", [l getYearXunKong], [l getMonthXunKong], [l getDayXunKong]];
NineStar *dayNineStar = [l getDayNineStar];
[dayNineStar toFullString];
- NSLog(@"九星:%@%@-%@星(%@)-%@", [dayNineStar getNumber],[dayNineStar getColor], [dayNineStar getNameInTaiYi], [dayNineStar getWuXing], [dayNineStar getTypeInTaiYi]);
- NSLog(@"九星歌诀:%@", [dayNineStar getSongInTaiYi]);
+ [str appendFormat:@"\n九星:%@%@-%@星(%@)-%@\n", [dayNineStar getNumber],[dayNineStar getColor], [dayNineStar getNameInTaiYi], [dayNineStar getWuXing], [dayNineStar getTypeInTaiYi]];
+ [str appendFormat:@"\n九星歌诀:%@\n", [dayNineStar getSongInTaiYi]];
JieQi * pJQ = [l getPrevJieQi];
- NSLog(@"上一节气:%@ %@", pJQ.name, [pJQ.solar toString]);
+ [str appendFormat:@"\n上一节气:%@ %@\n", pJQ.name, [pJQ.solar toString]];
JieQi * nJQ = [l getNextJieQi];
- NSLog(@"下一节气:%@ %@", nJQ.name, [nJQ.solar toString]);
+ [str appendFormat:@"\n下一节气:%@ %@\n", nJQ.name, [nJQ.solar toString]];
NSArray *arrFestivals = [d getFestivals];
- NSLog(@"节日:%@", arrFestivals.count == 0?@"无":[arrFestivals componentsJoinedByString:@" "]);
+ [str appendFormat:@"\n节日:%@\n", arrFestivals.count == 0?@"无":[arrFestivals componentsJoinedByString:@" "]];
NSArray *arrOtherFestivals = [d getOtherFestivals];
- NSLog(@"纪念日:%@", arrOtherFestivals.count == 0?@"":[arrOtherFestivals componentsJoinedByString:@" "]);
+ [str appendFormat:@"\n纪念日:%@\n", arrOtherFestivals.count == 0?@"无":[arrOtherFestivals componentsJoinedByString:@" "]];
ShuJiu *shujiu = [l getShuJiu];
- NSLog(@"数九:%@", shujiu?[shujiu toFullString]:@"");
+ [str appendFormat:@"\n数九:%@\n", shujiu?[shujiu toFullString]:@"无"];
Fu *fu = [l getFu];
- NSLog(@"数九:%@", fu?[fu toFullString]:@"");
+ [str appendFormat:@"\n三伏:%@\n", fu?[fu toFullString]:@"无"];
+ return str;
}
+#pragma mark - lazy -
+
+- (NSDateFormatter *)dateFormatter
+{
+ if (!_dateFormatter) {
+ _dateFormatter = [NSDateFormatter new];
+ _dateFormatter.dateFormat = @"yyyy-MM-dd";
+ }
+ return _dateFormatter;
+}
+
+- (UIButton *)dateBtn
+{
+ if (!_dateBtn) {
+ _dateBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+ [_dateBtn setBackgroundColor:[UIColor lightGrayColor]];
+ _dateBtn.frame = CGRectMake(10, kStatusBarHeight + 10, kWidth-20, 40);
+ [_dateBtn addTarget:self action:@selector(dateClick:) forControlEvents:UIControlEventTouchUpInside];
+ }
+ return _dateBtn;
+}
+
+- (UITextView *)textView
+{
+ if (!_textView) {
+ _textView = [[UITextView alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(_dateBtn.frame)+10, kWidth-20, kHeight-(CGRectGetMaxY(_dateBtn.frame)+20))];
+ _textView.editable = NO;
+ }
+ return _textView;
+}
+
+- (UIDatePicker *)picker
+{
+ if (!_picker) {
+ _picker = [[UIDatePicker alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(self.dateBtn.frame)+10, kWidth-20, 150)];
+ _picker.datePickerMode = UIDatePickerModeDate;
+ _picker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
+ _picker.minimumDate = [self.dateFormatter dateFromString:@"1901-01-01"];
+ _picker.maximumDate = [self.dateFormatter dateFromString:@"2099-12-31"];
+ _picker.backgroundColor = [UIColor lightGrayColor];
+ }
+ return _picker;
+}
+
+- (UIButton *)cancelBtn
+{
+ if (!_cancelBtn) {
+ _cancelBtn = [UIButton buttonWithType:UIButtonTypeSystem];
+ [_cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
+ _cancelBtn.frame = CGRectMake(0, 0, 50, CGRectGetHeight(self.dateBtn.frame));
+ [_cancelBtn addTarget:self action:@selector(actionBtnClick:) forControlEvents:UIControlEventTouchUpInside];
+ _cancelBtn.tag = 1;
+ }
+ return _cancelBtn;
+}
+
+- (UIButton *)confirmBtn
+{
+ if (!_confirmBtn) {
+ _confirmBtn = [UIButton buttonWithType:UIButtonTypeSystem];
+ [_confirmBtn setTitle:@"确定" forState:UIControlStateNormal];
+ _confirmBtn.frame = CGRectMake(CGRectGetWidth(self.dateBtn.frame)-50, 0, 50, CGRectGetHeight(self.dateBtn.frame));
+ [_confirmBtn addTarget:self action:@selector(actionBtnClick:) forControlEvents:UIControlEventTouchUpInside];
+ _confirmBtn.tag = 2;
+ }
+ return _confirmBtn;
+}
@end
--
Gitblit v1.9.1