Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Week based calendar and iOS
Search
Oleksandr Dodatko
December 22, 2012
Programming
0
100
Week based calendar and iOS
This talk covers some aspects of working with dates, calendars in iOS and SQLite
Oleksandr Dodatko
December 22, 2012
Tweet
Share
More Decks by Oleksandr Dodatko
See All by Oleksandr Dodatko
From Objective-C to Xamarin
dodikk
1
220
Building libraries for iOS — Going native (v2)
dodikk
3
270
Building libraries for iOS — Going native
dodikk
2
180
iAsync Functional Programming in Objective-C
dodikk
1
170
RubyMotion : A fly in the ointment
dodikk
0
59
iContinuousIntegration
dodikk
0
71
Other Decks in Programming
See All in Programming
2024年のWebフロントエンドのふりかえりと2025年
sakito
1
240
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
150
Spring gRPC について / About Spring gRPC
mackey0225
0
220
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
200
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
370
Formの複雑さに立ち向かう
bmthd
1
810
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
250
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
技術を根付かせる / How to make technology take root
kubode
1
240
『品質』という言葉が嫌いな理由
korimu
0
160
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
300
Featured
See All Featured
Producing Creativity
orderedlist
PRO
343
39k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
29
2.2k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
A Tale of Four Properties
chriscoyier
158
23k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Transcript
Dodatko Alexander November 2012
None
How many months does the year consist of?
What is the first day of the year?
What day does a new week start on?
Right, but did you know that ...
Jewish calendar consists of 13 months. And month #6 is
a leaping one.
In Japan the calendar may return to year #1 at
the day of the emperor's death
In Russia week starts on Monday. In the USA the
first day is Sunday
None
Dates must look in the way the user expects
None
None
-(NSDate*)parseDate:( NSString* )date_ { NSDateFormatter* df_ = [ NSDateFormatter new
]; df_.dateFormat = @"yyyy-MM-dd"; return [ df_ dateFromString: date_ ]; } The Typical Solution
-(NSDate*)parseDate:( NSString* )date_ { NSDateFormatter* df_ = [ NSDateFormatter new
]; df_.dateFormat = @"yyyy-MM-dd"; return [ df_ dateFromString: date_ ]; } WRONG !
None
Use en_US_POSIX locale for dates from the network Use Gregorian
calendar too
None
Do not forget to set the same Locale for both
NSCalendar and NSDateFormatter
Or let my library do it for you dodikk /
ESLocale
Ok. How about SQLite?
None
SELECT SUM( Visits) FROM VisitsLog WHERE Date BETWEEN x AND
y GROUP BY week
What should I take as week ?
SELECT SUM( Visits) FROM VisitsLog WHERE Date BETWEEN x AND
y GROUP BY Strftime('%Y-%W', Date )
SELECT SUM( Visits) FROM VisitsLog WHERE Date BETWEEN x AND
y GROUP BY Strftime('%Y-%W', Date )
None
SELECT SUM( Visits) FROM VisitsLog WHERE Date BETWEEN x AND
y GROUP BY ObjcFormatDate('YYYY-ww', Date, 'en_US_POSIX' )
None
int sqlite3_create_function( dbHandle, "ObjcFormatDate", 3, //int nArg, SQLITE_UTF8, NULL, //
sqlite user data functionPointer, NULL, NULL // for aggregates );
Plan of attack Convert C strings to NSString Convert date
string to NSDate Format NSDate using locale
SQLite uses ANSI format yyyy-MM-dd
Demo
One More Thing
None
1000 times slower than strftime 10K records Creating NSDateFormatter on-the-fly
None
Same speed as strftime Same 10K records Singletone NSDateFormatter
Thread Safety
dodikk / ESLocale
Contacts Oleksandr Dodatko mail/jabber :
[email protected]
Skype : alexander.dodatko.work Twitter
: @dodikk88 Github : https://github.com/dodikk https://github.com/EmbeddedSources
None