edtf 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +49 -19
- data/edtf.gemspec +1 -1
- data/features/parser/dates.feature +23 -10
- data/features/parser/intervals.feature +1 -1
- data/features/print/level_0_edtf.feature +1 -1
- data/features/print/level_1_edtf.feature +93 -2
- data/features/print/level_2_edtf.feature +31 -0
- data/features/print/uncertain_or_approximate.feature +134 -0
- data/features/step_definitions/edtf_steps.rb +35 -1
- data/lib/edtf.rb +16 -5
- data/lib/edtf/compatibility.rb +5 -16
- data/lib/edtf/date.rb +151 -35
- data/lib/edtf/date_time.rb +5 -5
- data/lib/edtf/interval.rb +243 -44
- data/lib/edtf/parser.y +39 -30
- data/lib/edtf/season.rb +16 -15
- data/lib/edtf/uncertainty.rb +57 -21
- data/lib/edtf/version.rb +1 -1
- data/spec/edtf/date_spec.rb +130 -3
- data/spec/edtf/interval_spec.rb +132 -4
- data/spec/edtf/parser_spec.rb +56 -35
- data/spec/edtf/uncertainty_spec.rb +167 -4
- metadata +20 -16
data/README.md
CHANGED
@@ -8,24 +8,34 @@ Specification](http://www.loc.gov/standards/datetime/spec.html).
|
|
8
8
|
Compatibility
|
9
9
|
-------------
|
10
10
|
|
11
|
-
EDTF-Ruby parser
|
12
|
-
|
11
|
+
EDTF-Ruby parser implements all levels and features of the EDTF Specification
|
12
|
+
(version September 16, 2011). With the following known caveats:
|
13
|
+
|
14
|
+
* Uncertain/approximate seasons will be parsed, but the Season class does
|
15
|
+
not implement attributes.
|
16
|
+
* Some complex L2 partial uncertain/approximate date strings may currently
|
17
|
+
fail to parse.
|
13
18
|
|
14
19
|
The level 2 list extensions (203 and 204) currently return simple Ruby arrays;
|
15
20
|
therefore, advanced behavior (such as 'earlier' or 'later') is parsed correctly
|
16
21
|
but not yet exposed by the Ruby API.
|
17
22
|
|
18
23
|
EDTF-Ruby has been confirmed to work on the following Ruby implementations:
|
19
|
-
1.9.2, 1.8.7, Rubinius, and JRuby.
|
24
|
+
1.9.3, 1.9.2, 1.8.7, Rubinius, and JRuby. Active Support's date extensions
|
25
|
+
are currently listed as a dependency, because of a number of many functional
|
26
|
+
overlaps.
|
20
27
|
|
21
28
|
|
22
29
|
Quickstart
|
23
30
|
----------
|
24
31
|
|
25
32
|
EDTF Ruby is implemented as an extension to the regular Ruby date/time classes.
|
26
|
-
You can access parse EDTF strings either using `Date.edtf` or `EDTF.parse
|
33
|
+
You can access parse EDTF strings either using `Date.edtf` or `EDTF.parse`
|
34
|
+
(both methods come with an alternative bang! version, that will raise an error
|
35
|
+
if the string cannot be parsed instead of silently returning nil); if
|
27
36
|
given a valid EDTF string the return value will either be an (extended) `Date`,
|
28
|
-
`EDTF::Interval` or `Range` (for masked precision strings) instance.
|
37
|
+
`EDTF::Interval` or `Range` (for masked precision strings) instance. Given
|
38
|
+
a Date, you can print the corresponding EDTF string using the `#edtf` method.
|
29
39
|
|
30
40
|
$ [sudo] gem install edtf
|
31
41
|
$ irb
|
@@ -33,9 +43,9 @@ given a valid EDTF string the return value will either be an (extended) `Date`,
|
|
33
43
|
> d = Date.edtf('1984?')
|
34
44
|
> d.uncertain?
|
35
45
|
=> true
|
36
|
-
> d.
|
37
|
-
> d.
|
38
|
-
=>
|
46
|
+
> d.approximate!
|
47
|
+
> d.edtf
|
48
|
+
=> "1984?~"
|
39
49
|
> d = Date.edtf('1999-03-uu')
|
40
50
|
> d.unspecified?
|
41
51
|
=> true
|
@@ -43,37 +53,57 @@ given a valid EDTF string the return value will either be an (extended) `Date`,
|
|
43
53
|
=> false
|
44
54
|
> d.unspecified? :day
|
45
55
|
=> true
|
46
|
-
>
|
56
|
+
> d.unspecified! :month
|
57
|
+
> d.edtf
|
58
|
+
=> "1999-uu-uu"
|
59
|
+
> Date.edtf!('2003-24').winter?
|
47
60
|
=> true
|
48
|
-
> Date.edtf('196x')
|
61
|
+
> Date.edtf!('196x')
|
49
62
|
=> #<Date: 1960-01-01>...#<Date: 1970-01-01>
|
50
63
|
> Date.edtf('y-17e7').year
|
51
64
|
=> -170000000
|
52
65
|
> d = Date.edtf('1984-06?/2004-08?')
|
53
66
|
> d.from.uncertain?
|
54
67
|
=> true
|
55
|
-
> d.
|
56
|
-
=>
|
57
|
-
> Date.
|
68
|
+
> d.include?(Date.new(1987,04,13))
|
69
|
+
=> false # the day is not included because interval has month precision
|
70
|
+
> d.cover?(Date.new(1987,04,13))
|
71
|
+
=> true # but the day is still covered by the interval
|
72
|
+
> d.length
|
73
|
+
=> 243 # months between 1984-06-01 and 2004-08-31
|
74
|
+
> d.step(36).map(&:year)
|
75
|
+
=> [1984, 1987, 1990, 1993, 1996, 1999, 2002] # 36-month steps
|
76
|
+
> Date.edtf('1582-10-01/1582-10-31').length
|
58
77
|
=> 21 # number of days in October 1582 (Gregorian calendar)
|
59
78
|
> Date.edtf('2004/open').open?
|
60
79
|
=> true
|
61
|
-
|
80
|
+
> Date.edtf('2004/open').cover?(Date.today)
|
81
|
+
=> true # an open ended interval covers today
|
62
82
|
|
63
|
-
For additional features take a look at the
|
83
|
+
For additional features take a look at the documentation or the extensive
|
84
|
+
list of rspec examples.
|
64
85
|
|
65
86
|
|
66
|
-
|
67
|
-
|
87
|
+
Contributing
|
88
|
+
------------
|
89
|
+
|
90
|
+
The EDTF-Ruby source code is [hosted on GitHub](https://github.com/inukshuk/edtf-ruby).
|
91
|
+
You can check out a copy of the latest code using Git:
|
92
|
+
|
93
|
+
$ git clone https://github.com/inukshuk/edtf-ruby.git
|
94
|
+
|
95
|
+
To get started, generate the parser and run all tests:
|
68
96
|
|
69
|
-
$ git clone https://inukshuk@github.com/inukshuk/edtf-ruby.git
|
70
97
|
$ cd edtf-ruby
|
71
98
|
$ bundle install
|
72
99
|
$ bundle exec rake racc_debug
|
73
100
|
$ bundle exec rspec spec
|
74
101
|
$ bundle exec cucumber
|
75
102
|
|
76
|
-
|
103
|
+
If you've found a bug or have a question, please open an issue on the
|
104
|
+
[EDTF-Ruby issue tracker](https://github.com/inukshuk/edtf-ruby). Or, for extra
|
105
|
+
credit, clone the EDTF-Ruby repository, write a failing example, fix the bug
|
106
|
+
and submit a pull request.
|
77
107
|
|
78
108
|
|
79
109
|
Credits
|
data/edtf.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.email = ['http://sylvester.keil.or.at']
|
13
13
|
s.homepage = 'http://inukshuk.github.com/edtf-ruby'
|
14
14
|
s.summary = 'Extended Date/Time Format for Ruby.'
|
15
|
-
s.description = '
|
15
|
+
s.description = 'A Ruby implementation of the Extended Date/Time Format (EDTF).'
|
16
16
|
s.license = 'FreeBSD'
|
17
17
|
|
18
18
|
s.add_runtime_dependency('activesupport', ['~>3.0'])
|
@@ -63,14 +63,27 @@ Feature: EDTF parser parses date strings
|
|
63
63
|
|
64
64
|
@201 @level2
|
65
65
|
Scenarios: uncertain date examples from the specification
|
66
|
-
| string
|
67
|
-
| 2004?-06-11
|
68
|
-
| 2004-06~-11
|
69
|
-
| 2004-(06)?-11
|
70
|
-
| 2004-06-(11)~
|
71
|
-
| 2004-(06)?~
|
72
|
-
| 2004-(06-11)?
|
73
|
-
| 2004?-06-(11)~
|
74
|
-
| (2004-(06)~)?
|
75
|
-
| 2004-06-(01)~
|
66
|
+
| string | ~-year | ?-year | ~-month | ?-month | ~-day | ?-day |
|
67
|
+
| 2004?-06-11 | no | yes | no | no | no | no |
|
68
|
+
| 2004-06~-11 | yes | no | yes | no | no | no |
|
69
|
+
| 2004-(06)?-11 | no | no | no | yes | no | no |
|
70
|
+
| 2004-06-(11)~ | no | no | no | no | yes | no |
|
71
|
+
| 2004-(06)?~ | no | no | yes | yes | no | no |
|
72
|
+
| 2004-(06-11)? | no | no | no | yes | no | yes |
|
73
|
+
| 2004?-06-(11)~ | no | yes | no | no | yes | no |
|
74
|
+
| (2004-(06)~)? | no | yes | yes | yes | no | no |
|
75
|
+
| 2004-06-(01)~ | no | no | no | no | yes | no |
|
76
|
+
| (2004-(06-01)~)? | no | yes | yes | yes | yes | yes |
|
77
|
+
| (2004-(06)?-01)~ | yes | no | yes | yes | yes | no |
|
78
|
+
| 2004-06?-(01)~ | no | yes | no | yes | yes | no |
|
79
|
+
| 2004~-(06)?-01~ | yes | no | no | yes | yes | no |
|
80
|
+
| 2004~-(06-(01)~)? | yes | no | no | yes | yes | yes |
|
76
81
|
|
82
|
+
|
83
|
+
Scenario: Invalid dates
|
84
|
+
When I parse the following strings an error should be raised:
|
85
|
+
| xyz |
|
86
|
+
| x2009 |
|
87
|
+
| 2004-04-(1)?1 |
|
88
|
+
|
89
|
+
|
@@ -4,7 +4,7 @@ Feature: EDTF parses ISO 8601 interval strings
|
|
4
4
|
|
5
5
|
Scenario Outline: parse intervals
|
6
6
|
When I parse the string "<string>"
|
7
|
-
Then the interval should
|
7
|
+
Then the interval should cover the date "<date>"
|
8
8
|
|
9
9
|
@004 @level0
|
10
10
|
Scenarios: specification intervals
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Feature: Print Date/Time objects as Level
|
1
|
+
Feature: Print Date/Time objects as Level 1 EDTF strings
|
2
2
|
As a Ruby programmer
|
3
3
|
I want to convert Date/Time objects to EDTF strings
|
4
4
|
|
@@ -7,9 +7,100 @@ Feature: Print Date/Time objects as Level 2 EDTF strings
|
|
7
7
|
When I parse the string "2001?"
|
8
8
|
When I convert the date
|
9
9
|
Then the EDTF string should be "2001?"
|
10
|
+
|
10
11
|
When I parse the string "2004-06?"
|
11
12
|
When I convert the date
|
12
13
|
Then the EDTF string should be "2004-06?"
|
14
|
+
|
13
15
|
When I parse the string "2004-06-11?"
|
14
16
|
When I convert the date
|
15
|
-
Then the EDTF string should be "2004-06-11?"
|
17
|
+
Then the EDTF string should be "2004-06-11?"
|
18
|
+
|
19
|
+
When I parse the string "1984~"
|
20
|
+
When I convert the date
|
21
|
+
Then the EDTF string should be "1984~"
|
22
|
+
|
23
|
+
When I parse the string "1984?~"
|
24
|
+
When I convert the date
|
25
|
+
Then the EDTF string should be "1984?~"
|
26
|
+
|
27
|
+
@102 @level1
|
28
|
+
Scenario: Unspecified dates
|
29
|
+
When I parse the string "199u"
|
30
|
+
When I convert the date
|
31
|
+
Then the EDTF string should be "199u"
|
32
|
+
|
33
|
+
When I parse the string "19uu"
|
34
|
+
When I convert the date
|
35
|
+
Then the EDTF string should be "19uu"
|
36
|
+
|
37
|
+
When I parse the string "1999-uu"
|
38
|
+
When I convert the date
|
39
|
+
Then the EDTF string should be "1999-uu"
|
40
|
+
|
41
|
+
When I parse the string "1999-01-uu"
|
42
|
+
When I convert the date
|
43
|
+
Then the EDTF string should be "1999-01-uu"
|
44
|
+
|
45
|
+
When I parse the string "1999-uu-uu"
|
46
|
+
When I convert the date
|
47
|
+
Then the EDTF string should be "1999-uu-uu"
|
48
|
+
|
49
|
+
@103 @level1 @interval
|
50
|
+
Scenario: Prints L1 Extended Intervals
|
51
|
+
When I parse the string "unknown/2006"
|
52
|
+
When I convert the date
|
53
|
+
Then the EDTF string should be "unknown/2006"
|
54
|
+
|
55
|
+
When I parse the string "2004-06-01/unknown"
|
56
|
+
When I convert the date
|
57
|
+
Then the EDTF string should be "2004-06-01/unknown"
|
58
|
+
|
59
|
+
When I parse the string "2004-01-01/open"
|
60
|
+
When I convert the date
|
61
|
+
Then the EDTF string should be "2004-01-01/open"
|
62
|
+
|
63
|
+
When I parse the string "1984~/2004-06"
|
64
|
+
When I convert the date
|
65
|
+
Then the EDTF string should be "1984~/2004-06"
|
66
|
+
|
67
|
+
When I parse the string "1984/2004-06~"
|
68
|
+
When I convert the date
|
69
|
+
Then the EDTF string should be "1984/2004-06~"
|
70
|
+
|
71
|
+
When I parse the string "1984~/2004~"
|
72
|
+
When I convert the date
|
73
|
+
Then the EDTF string should be "1984~/2004~"
|
74
|
+
|
75
|
+
When I parse the string "1984?/2004?~"
|
76
|
+
When I convert the date
|
77
|
+
Then the EDTF string should be "1984?/2004?~"
|
78
|
+
|
79
|
+
When I parse the string "1984-06?/2004-08?"
|
80
|
+
When I convert the date
|
81
|
+
Then the EDTF string should be "1984-06?/2004-08?"
|
82
|
+
|
83
|
+
When I parse the string "1984-06-02?/2004-08-08~"
|
84
|
+
When I convert the date
|
85
|
+
Then the EDTF string should be "1984-06-02?/2004-08-08~"
|
86
|
+
|
87
|
+
When I parse the string "1984-06-02?/unknown"
|
88
|
+
When I convert the date
|
89
|
+
Then the EDTF string should be "1984-06-02?/unknown"
|
90
|
+
|
91
|
+
@104 @level1
|
92
|
+
Scenario: Prints years with more than four digits
|
93
|
+
When I parse the string "y170000002"
|
94
|
+
When I convert the date
|
95
|
+
Then the EDTF string should be "y170000002"
|
96
|
+
|
97
|
+
When I parse the string "y-170000002"
|
98
|
+
When I convert the date
|
99
|
+
Then the EDTF string should be "y-170000002"
|
100
|
+
|
101
|
+
@105 @level1 @season
|
102
|
+
Scenario: Prints seasons
|
103
|
+
When I parse the string "2001-21"
|
104
|
+
When I convert the date
|
105
|
+
Then the EDTF string should be "2001-21"
|
106
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Feature: Print Date/Time objects as Level 2 EDTF strings
|
2
|
+
As a Ruby programmer
|
3
|
+
I want to convert Date/Time objects to EDTF strings
|
4
|
+
|
5
|
+
@202 @level2
|
6
|
+
Scenario: Prints internal unspecified dates
|
7
|
+
When I parse the string "156u-12-25"
|
8
|
+
When I convert the date
|
9
|
+
Then the EDTF string should be "156u-12-25"
|
10
|
+
|
11
|
+
@205 @level2 @interval
|
12
|
+
Scenario: Prints L2 extended intervals
|
13
|
+
# When I parse the string "2004-06-(01)~/2004-06-(20)~"
|
14
|
+
# When I convert the date
|
15
|
+
# Then the EDTF string should be "2004-06-(01)~/2004-06-(20)~"
|
16
|
+
|
17
|
+
When I parse the string "2004-06-uu/2004-07-03"
|
18
|
+
When I convert the date
|
19
|
+
Then the EDTF string should be "2004-06-uu/2004-07-03"
|
20
|
+
|
21
|
+
@209 @level2 @season
|
22
|
+
Scenario: Prints qualified seasons
|
23
|
+
When I parse the string "2001-21^southernHemisphere"
|
24
|
+
When I convert the date
|
25
|
+
Then the EDTF string should be "2001-21^southernHemisphere"
|
26
|
+
|
27
|
+
@207 @level2 @calendar
|
28
|
+
Scenario: Prints calendar string
|
29
|
+
When I parse the string "2001-02-03^xyz"
|
30
|
+
When I convert the date
|
31
|
+
Then the EDTF string should be "2001-02-03^xyz"
|
@@ -0,0 +1,134 @@
|
|
1
|
+
Feature: Print uncertain or approximate dates
|
2
|
+
As a Ruby programmer
|
3
|
+
I want to convert Date/Time objects to EDTF strings
|
4
|
+
|
5
|
+
@201 @level2
|
6
|
+
Scenario Outline: Prints uncertain or approximate dates
|
7
|
+
Given the date "<date>" with precision set to "<precision>"
|
8
|
+
When the year is uncertain: "<?-year>"
|
9
|
+
And the month is uncertain: "<?-month>"
|
10
|
+
And the day is uncertain: "<?-day>"
|
11
|
+
And the year is approximate: "<~-year>"
|
12
|
+
And the month is approximate: "<~-month>"
|
13
|
+
And the day is approximate "<~-day>"
|
14
|
+
When I convert the date
|
15
|
+
Then the EDTF string should be "<string>"
|
16
|
+
|
17
|
+
@wip
|
18
|
+
Scenarios: Uncertain or approximate dates, day precision
|
19
|
+
| date | precision | string | ?-year | ?-month | ?-day | ~-year | ~-month | ~-day |
|
20
|
+
| 2004-06-01 | day | 2004-06-01?~ | yes | yes | yes | yes | yes | yes |
|
21
|
+
| 2004-06-01 | day | 2004-06~-01? | yes | yes | yes | yes | yes | no |
|
22
|
+
# | 2004-06-01 | day | (2004~-06-(01)~)? | yes | yes | yes | yes | no | yes |
|
23
|
+
| 2004-06-01 | day | 2004~-06?-(01)?~ | yes | yes | yes | yes | no | yes |
|
24
|
+
| 2004-06-01 | day | 2004~-06-01? | yes | yes | yes | yes | no | no |
|
25
|
+
# | 2004-06-01 | day | (2004-(06-01)~)? | yes | yes | yes | no | yes | yes |
|
26
|
+
| 2004-06-01 | day | 2004?-(06-01)?~ | yes | yes | yes | no | yes | yes |
|
27
|
+
# | 2004-06-01 | day | (2004-(06)~-01)? | yes | yes | yes | no | yes | no |
|
28
|
+
| 2004-06-01 | day | 2004?-(06)?~-01? | yes | yes | yes | no | yes | no |
|
29
|
+
# | 2004-06-01 | day | (2004-06-(01)~)? | yes | yes | yes | no | no | yes |
|
30
|
+
| 2004-06-01 | day | 2004-06?-(01)?~ | yes | yes | yes | no | no | yes |
|
31
|
+
| 2004-06-01 | day | 2004-06-01? | yes | yes | yes | no | no | no |
|
32
|
+
| 2004-06-01 | day | 2004-06?-01~ | yes | yes | no | yes | yes | yes |
|
33
|
+
| 2004-06-01 | day | 2004-06?~-01 | yes | yes | no | yes | yes | no |
|
34
|
+
| 2004-06-01 | day | 2004~-06?-(01)~ | yes | yes | no | yes | no | yes |
|
35
|
+
| 2004-06-01 | day | 2004~-06?-01 | yes | yes | no | yes | no | no |
|
36
|
+
# | 2004-06-01 | day | 2004-(06?-01)~ | yes | yes | no | no | yes | yes | is this correct?
|
37
|
+
# | 2004-06-01 | day | 2004?-((06)?-01)~ | yes | yes | no | no | yes | yes |
|
38
|
+
| 2004-06-01 | day | 2004?-(06)?~-01~ | yes | yes | no | no | yes | yes |
|
39
|
+
# | 2004-06-01 | day | (2004-(06)~)?-01 | yes | yes | no | no | yes | no |
|
40
|
+
| 2004-06-01 | day | 2004?-(06)?~-01 | yes | yes | no | no | yes | no |
|
41
|
+
| 2004-06-01 | day | 2004-06?-(01)~ | yes | yes | no | no | no | yes |
|
42
|
+
| 2004-06-01 | day | 2004-06?-01 | yes | yes | no | no | no | no |
|
43
|
+
# | 2004-06-01 | day | (2004?-06-(01)?)~ | yes | no | yes | yes | yes | yes |
|
44
|
+
| 2004-06-01 | day | 2004?-06~-(01)?~ | yes | no | yes | yes | yes | yes |
|
45
|
+
| 2004-06-01 | day | 2004?-06~-(01)? | yes | no | yes | yes | yes | no |
|
46
|
+
| 2004-06-01 | day | 2004?~-06-(01)?~ | yes | no | yes | yes | no | yes |
|
47
|
+
| 2004-06-01 | day | 2004?~-06-(01)? | yes | no | yes | yes | no | no |
|
48
|
+
# | 2004-06-01 | day | 2004?-(06-(01)?)~ | yes | no | yes | no | yes | yes |
|
49
|
+
| 2004-06-01 | day | 2004?-(06)~-01?~ | yes | no | yes | no | yes | yes |
|
50
|
+
| 2004-06-01 | day | 2004?-(06)~-01? | yes | no | yes | no | yes | no |
|
51
|
+
| 2004-06-01 | day | 2004?-06-(01)?~ | yes | no | yes | no | no | yes |
|
52
|
+
| 2004-06-01 | day | 2004?-06-(01)? | yes | no | yes | no | no | no |
|
53
|
+
| 2004-06-01 | day | 2004?-06-01~ | yes | no | no | yes | yes | yes |
|
54
|
+
| 2004-06-01 | day | 2004?-06~-01 | yes | no | no | yes | yes | no |
|
55
|
+
| 2004-06-01 | day | 2004?~-06-(01)~ | yes | no | no | yes | no | yes |
|
56
|
+
| 2004-06-01 | day | 2004?~-06-01 | yes | no | no | yes | no | no |
|
57
|
+
| 2004-06-01 | day | 2004?-(06-01)~ | yes | no | no | no | yes | yes |
|
58
|
+
| 2004-06-01 | day | 2004?-(06)~-01 | yes | no | no | no | yes | no |
|
59
|
+
| 2004-06-01 | day | 2004?-06-(01)~ | yes | no | no | no | no | yes |
|
60
|
+
| 2004-06-01 | day | 2004?-06-01 | yes | no | no | no | no | no |
|
61
|
+
# | 2004-06-01 | day | (2004-(06-01)?)~ | no | yes | yes | yes | yes | yes |
|
62
|
+
| 2004-06-01 | day | 2004~-(06-01)?~ | no | yes | yes | yes | yes | yes |
|
63
|
+
# | 2004-06-01 | day | 2004-(06~-01)? | no | yes | yes | yes | yes | no | is this correct?
|
64
|
+
# | 2004-06-01 | day | 2004~-((06)~-01)? | no | yes | yes | yes | yes | no |
|
65
|
+
| 2004-06-01 | day | 2004~-(06)?~-01? | no | yes | yes | yes | yes | no |
|
66
|
+
# | 2004-06-01 | day | 2004~-(06-(01)~)? | no | yes | yes | yes | no | yes |
|
67
|
+
| 2004-06-01 | day | 2004~-(06)?-01?~ | no | yes | yes | yes | no | yes |
|
68
|
+
| 2004-06-01 | day | 2004~-(06-01)? | no | yes | yes | yes | no | no |
|
69
|
+
| 2004-06-01 | day | 2004-(06-01)?~ | no | yes | yes | no | yes | yes |
|
70
|
+
# | 2004-06-01 | day | 2004-((06)~-01)? | no | yes | yes | no | yes | no |
|
71
|
+
| 2004-06-01 | day | 2004-(06)?~-01? | no | yes | yes | no | yes | no |
|
72
|
+
# | 2004-06-01 | day | 2004-(06-(01)~)? | no | yes | yes | no | no | yes |
|
73
|
+
| 2004-06-01 | day | 2004-(06)?-01?~ | no | yes | yes | no | no | yes |
|
74
|
+
| 2004-06-01 | day | 2004-(06-01)? | no | yes | yes | no | no | no |
|
75
|
+
# | 2004-06-01 | day | (2004-(06)?-01)~ | no | yes | no | yes | yes | yes |
|
76
|
+
| 2004-06-01 | day | 2004~-(06)?~-01~ | no | yes | no | yes | yes | yes |
|
77
|
+
# | 2004-06-01 | day | (2004-(06)?)~-01 | no | yes | no | yes | yes | no |
|
78
|
+
| 2004-06-01 | day | 2004~-(06)?~-01 | no | yes | no | yes | yes | no |
|
79
|
+
| 2004-06-01 | day | 2004~-(06)?-01~ | no | yes | no | yes | no | yes |
|
80
|
+
| 2004-06-01 | day | 2004~-(06)?-01 | no | yes | no | yes | no | no |
|
81
|
+
# | 2004-06-01 | day | 2004-((06)?-01)~ | no | yes | no | no | yes | yes |
|
82
|
+
| 2004-06-01 | day | 2004-(06)?~-01~ | no | yes | no | no | yes | yes |
|
83
|
+
| 2004-06-01 | day | 2004-(06)?~-01 | no | yes | no | no | yes | no |
|
84
|
+
| 2004-06-01 | day | 2004-(06)?-01~ | no | yes | no | no | no | yes |
|
85
|
+
| 2004-06-01 | day | 2004-(06)?-01 | no | yes | no | no | no | no |
|
86
|
+
# | 2004-06-01 | day | (2004-06-(01)?)~ | no | no | yes | yes | yes | yes |
|
87
|
+
| 2004-06-01 | day | 2004-06~-(01)?~ | no | no | yes | yes | yes | yes |
|
88
|
+
| 2004-06-01 | day | 2004-06~-(01)? | no | no | yes | yes | yes | no |
|
89
|
+
| 2004-06-01 | day | 2004~-06-(01)?~ | no | no | yes | yes | no | yes |
|
90
|
+
| 2004-06-01 | day | 2004~-06-(01)? | no | no | yes | yes | no | no |
|
91
|
+
# | 2004-06-01 | day | 2004-(06-(01)?)~ | no | no | yes | no | yes | yes |
|
92
|
+
| 2004-06-01 | day | 2004-(06)~-01?~ | no | no | yes | no | yes | yes |
|
93
|
+
| 2004-06-01 | day | 2004-(06)~-01? | no | no | yes | no | yes | no |
|
94
|
+
| 2004-06-01 | day | 2004-06-(01)?~ | no | no | yes | no | no | yes |
|
95
|
+
| 2004-06-01 | day | 2004-06-(01)? | no | no | yes | no | no | no |
|
96
|
+
| 2004-06-01 | day | 2004-06-01~ | no | no | no | yes | yes | yes |
|
97
|
+
| 2004-06-01 | day | 2004-06~-01 | no | no | no | yes | yes | no |
|
98
|
+
| 2004-06-01 | day | 2004~-06-(01)~ | no | no | no | yes | no | yes |
|
99
|
+
| 2004-06-01 | day | 2004~-06-01 | no | no | no | yes | no | no |
|
100
|
+
| 2004-06-01 | day | 2004-(06-01)~ | no | no | no | no | yes | yes |
|
101
|
+
| 2004-06-01 | day | 2004-(06)~-01 | no | no | no | no | yes | no |
|
102
|
+
| 2004-06-01 | day | 2004-06-(01)~ | no | no | no | no | no | yes |
|
103
|
+
| 2004-06-01 | day | 2004-06-01 | no | no | no | no | no | no |
|
104
|
+
|
105
|
+
@wip
|
106
|
+
Scenarios: Uncertain or approximate dates, month precision
|
107
|
+
| date | precision | string | ?-year | ?-month | ?-day | ~-year | ~-month | ~-day |
|
108
|
+
| 2004-06-01 | month | 2004-06?~ | yes | yes | no | yes | yes | no |
|
109
|
+
| 2004-06-01 | month | 2004~-06? | yes | yes | no | yes | no | no |
|
110
|
+
# | 2004-06-01 | month | (2004-(06)~)? | yes | yes | no | no | yes | no |
|
111
|
+
| 2004-06-01 | month | 2004?-(06)?~ | yes | yes | no | no | yes | no |
|
112
|
+
| 2004-06-01 | month | 2004-06? | yes | yes | no | no | no | no |
|
113
|
+
| 2004-06-01 | month | 2004?-06~ | yes | no | no | yes | yes | no |
|
114
|
+
| 2004-06-01 | month | 2004?~-06 | yes | no | no | yes | no | no |
|
115
|
+
| 2004-06-01 | month | 2004?-(06)~ | yes | no | no | no | yes | no |
|
116
|
+
| 2004-06-01 | month | 2004?-06 | yes | no | no | no | no | no |
|
117
|
+
# | 2004-06-01 | month | (2004-(06)?)~ | no | yes | no | yes | yes | no |
|
118
|
+
| 2004-06-01 | month | 2004~-(06)?~ | no | yes | no | yes | yes | no |
|
119
|
+
| 2004-06-01 | month | 2004~-(06)? | no | yes | no | yes | no | no |
|
120
|
+
| 2004-06-01 | month | 2004-(06)?~ | no | yes | no | no | yes | no |
|
121
|
+
| 2004-06-01 | month | 2004-(06)? | no | yes | no | no | no | no |
|
122
|
+
| 2004-06-01 | month | 2004-06~ | no | no | no | yes | yes | no |
|
123
|
+
| 2004-06-01 | month | 2004~-06 | no | no | no | yes | no | no |
|
124
|
+
| 2004-06-01 | month | 2004-(06)~ | no | no | no | no | yes | no |
|
125
|
+
| 2004-06-01 | month | 2004-06 | no | no | no | no | no | no |
|
126
|
+
|
127
|
+
|
128
|
+
@wip
|
129
|
+
Scenarios: Uncertain or approximate dates, year precision
|
130
|
+
| date | precision | string | ?-year | ?-month | ?-day | ~-year | ~-month | ~-day |
|
131
|
+
| 2004-06-01 | year | 2004?~ | yes | no | no | yes | no | no |
|
132
|
+
| 2004-06-01 | year | 2004? | yes | no | no | no | no | no |
|
133
|
+
| 2004-06-01 | year | 2004~ | no | no | no | yes | no | no |
|
134
|
+
| 2004-06-01 | year | 2004 | no | no | no | no | no | no |
|