]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
cal: Add test, all are checked against ncal
authorAurelien LAJOIE <orel@melix.net>
Wed, 6 May 2020 20:53:29 +0000 (22:53 +0200)
committerAurelien LAJOIE <orel@melix.net>
Mon, 11 May 2020 15:41:54 +0000 (17:41 +0200)
ncal -M 09 2006
    September 2006
Mo     4 11 18 25
Tu     5 12 19 26
We     6 13 20 27
Th     7 14 21 28
Fr  1  8 15 22 29
Sa  2  9 16 23 30
Su  3 10 17 24

cal -mv 09 2006
    September 2006
Mo     4 11 18 25
Tu     5 12 19 26
We     6 13 20 27
Th     7 14 21 28
Fr  1  8 15 22 29
Sa  2  9 16 23 30
Su  3 10 17 24

For example `vertical-3sjv` `ncal -wjA2 08 2006`
The differences are 3 letters days when julian calendar with cal
Trailing spaces

21 files changed:
tests/expected/cal/vertical-1mjv [new file with mode: 0644]
tests/expected/cal/vertical-1mjwv [new file with mode: 0644]
tests/expected/cal/vertical-1mv [new file with mode: 0644]
tests/expected/cal/vertical-1mwv [new file with mode: 0644]
tests/expected/cal/vertical-1sjv [new file with mode: 0644]
tests/expected/cal/vertical-1sjwv [new file with mode: 0644]
tests/expected/cal/vertical-1sv [new file with mode: 0644]
tests/expected/cal/vertical-1swv [new file with mode: 0644]
tests/expected/cal/vertical-3mjv [new file with mode: 0644]
tests/expected/cal/vertical-3mjwv [new file with mode: 0644]
tests/expected/cal/vertical-3mv [new file with mode: 0644]
tests/expected/cal/vertical-3mwv [new file with mode: 0644]
tests/expected/cal/vertical-3sjv [new file with mode: 0644]
tests/expected/cal/vertical-3sjwv [new file with mode: 0644]
tests/expected/cal/vertical-3sv [new file with mode: 0644]
tests/expected/cal/vertical-3swv [new file with mode: 0644]
tests/expected/cal/vertical-vSn201 [new file with mode: 0644]
tests/expected/cal/vertical-vSn21 [new file with mode: 0644]
tests/expected/cal/vertical-vSn3 [new file with mode: 0644]
tests/expected/cal/vertical-vSn51 [new file with mode: 0644]
tests/ts/cal/vertical [new file with mode: 0755]

diff --git a/tests/expected/cal/vertical-1mjv b/tests/expected/cal/vertical-1mjv
new file mode 100644 (file)
index 0000000..f9ac2d1
--- /dev/null
@@ -0,0 +1,9 @@
+Julian - Monday-based week
+     September 2006           
+Mon     247 254 261 268    
+Tue     248 255 262 269    
+Wed     249 256 263 270    
+Thu     250 257 264 271    
+Fri 244 251 258 265 272    
+Sat 245 252 259 266 273    
+Sun 246 253 260 267        
diff --git a/tests/expected/cal/vertical-1mjwv b/tests/expected/cal/vertical-1mjwv
new file mode 100644 (file)
index 0000000..dcb6fe9
--- /dev/null
@@ -0,0 +1,10 @@
+Julian - Monday-based week with week numbers
+     September 2006           
+Mon     247 254 261 268    
+Tue     248 255 262 269    
+Wed     249 256 263 270    
+Thu     250 257 264 271    
+Fri 244 251 258 265 272    
+Sat 245 252 259 266 273    
+Sun 246 253 260 267        
+     35  36  37  38  39    
diff --git a/tests/expected/cal/vertical-1mv b/tests/expected/cal/vertical-1mv
new file mode 100644 (file)
index 0000000..9a2780e
--- /dev/null
@@ -0,0 +1,9 @@
+Gregorian - Monday-based week
+    September 2006     
+Mo     4 11 18 25   
+Tu     5 12 19 26   
+We     6 13 20 27   
+Th     7 14 21 28   
+Fr  1  8 15 22 29   
+Sa  2  9 16 23 30   
+Su  3 10 17 24      
diff --git a/tests/expected/cal/vertical-1mwv b/tests/expected/cal/vertical-1mwv
new file mode 100644 (file)
index 0000000..89f5f1d
--- /dev/null
@@ -0,0 +1,10 @@
+Gregorian - Monday-based week with week numbers
+    September 2006     
+Mo     4 11 18 25   
+Tu     5 12 19 26   
+We     6 13 20 27   
+Th     7 14 21 28   
+Fr  1  8 15 22 29   
+Sa  2  9 16 23 30   
+Su  3 10 17 24      
+   35 36 37 38 39   
diff --git a/tests/expected/cal/vertical-1sjv b/tests/expected/cal/vertical-1sjv
new file mode 100644 (file)
index 0000000..81f856a
--- /dev/null
@@ -0,0 +1,9 @@
+Julian - Sunday-based week
+     September 2006           
+Sun     246 253 260 267    
+Mon     247 254 261 268    
+Tue     248 255 262 269    
+Wed     249 256 263 270    
+Thu     250 257 264 271    
+Fri 244 251 258 265 272    
+Sat 245 252 259 266 273    
diff --git a/tests/expected/cal/vertical-1sjwv b/tests/expected/cal/vertical-1sjwv
new file mode 100644 (file)
index 0000000..65cdadc
--- /dev/null
@@ -0,0 +1,10 @@
+Julian - Sunday-based week with week numbers
+     September 2006           
+Sun     246 253 260 267    
+Mon     247 254 261 268    
+Tue     248 255 262 269    
+Wed     249 256 263 270    
+Thu     250 257 264 271    
+Fri 244 251 258 265 272    
+Sat 245 252 259 266 273    
+     35  36  37  38  39    
diff --git a/tests/expected/cal/vertical-1sv b/tests/expected/cal/vertical-1sv
new file mode 100644 (file)
index 0000000..2e334a3
--- /dev/null
@@ -0,0 +1,9 @@
+Gregorian - Sunday-based week
+    September 2006     
+Su     3 10 17 24   
+Mo     4 11 18 25   
+Tu     5 12 19 26   
+We     6 13 20 27   
+Th     7 14 21 28   
+Fr  1  8 15 22 29   
+Sa  2  9 16 23 30   
diff --git a/tests/expected/cal/vertical-1swv b/tests/expected/cal/vertical-1swv
new file mode 100644 (file)
index 0000000..8fc7e3e
--- /dev/null
@@ -0,0 +1,10 @@
+Gregorian - Sunday-based week with week numbers
+    September 2006     
+Su     3 10 17 24   
+Mo     4 11 18 25   
+Tu     5 12 19 26   
+We     6 13 20 27   
+Th     7 14 21 28   
+Fr  1  8 15 22 29   
+Sa  2  9 16 23 30   
+   35 36 37 38 39   
diff --git a/tests/expected/cal/vertical-3mjv b/tests/expected/cal/vertical-3mjv
new file mode 100644 (file)
index 0000000..f67791d
--- /dev/null
@@ -0,0 +1,9 @@
+Julian - Monday-based week
+     December 2017            January 2018             February 2018            
+Mon     338 345 352 359        1   8  15  22  29           36  43  50  57    
+Tue     339 346 353 360        2   9  16  23  30           37  44  51  58    
+Wed     340 347 354 361        3  10  17  24  31           38  45  52  59    
+Thu     341 348 355 362        4  11  18  25           32  39  46  53        
+Fri 335 342 349 356 363        5  12  19  26           33  40  47  54        
+Sat 336 343 350 357 364        6  13  20  27           34  41  48  55        
+Sun 337 344 351 358 365        7  14  21  28           35  42  49  56        
diff --git a/tests/expected/cal/vertical-3mjwv b/tests/expected/cal/vertical-3mjwv
new file mode 100644 (file)
index 0000000..aaf8ee6
--- /dev/null
@@ -0,0 +1,10 @@
+Julian - Monday-based week with week numbers
+     August 2006              September 2006           October 2006             
+Mon     219 226 233 240          247 254 261 268          275 282 289 296 303
+Tue 213 220 227 234 241          248 255 262 269          276 283 290 297 304
+Wed 214 221 228 235 242          249 256 263 270          277 284 291 298    
+Thu 215 222 229 236 243          250 257 264 271          278 285 292 299    
+Fri 216 223 230 237          244 251 258 265 272          279 286 293 300    
+Sat 217 224 231 238          245 252 259 266 273          280 287 294 301    
+Sun 218 225 232 239          246 253 260 267          274 281 288 295 302    
+     31  32  33  34  35       35  36  37  38  39       39  40  41  42  43  44
diff --git a/tests/expected/cal/vertical-3mv b/tests/expected/cal/vertical-3mv
new file mode 100644 (file)
index 0000000..fec2d06
--- /dev/null
@@ -0,0 +1,9 @@
+Gregorian - Monday-based week
+    August 2006        September 2006     October 2006       
+Mo     7 14 21 28         4 11 18 25         2  9 16 23 30
+Tu  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+We  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Th  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Fr  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Sa  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Su  6 13 20 27         3 10 17 24         1  8 15 22 29   
diff --git a/tests/expected/cal/vertical-3mwv b/tests/expected/cal/vertical-3mwv
new file mode 100644 (file)
index 0000000..63bcc1c
--- /dev/null
@@ -0,0 +1,10 @@
+Gregorian - Monday-based week with week numbers
+    August 2006        September 2006     October 2006       
+Mo     7 14 21 28         4 11 18 25         2  9 16 23 30
+Tu  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+We  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Th  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Fr  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Sa  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Su  6 13 20 27         3 10 17 24         1  8 15 22 29   
+   31 32 33 34 35     35 36 37 38 39     39 40 41 42 43 44
diff --git a/tests/expected/cal/vertical-3sjv b/tests/expected/cal/vertical-3sjv
new file mode 100644 (file)
index 0000000..dcb6bd4
--- /dev/null
@@ -0,0 +1,9 @@
+Julian - Sunday-based week
+     August 2006              September 2006           October 2006             
+Sun     218 225 232 239          246 253 260 267      274 281 288 295 302    
+Mon     219 226 233 240          247 254 261 268      275 282 289 296 303    
+Tue 213 220 227 234 241          248 255 262 269      276 283 290 297 304    
+Wed 214 221 228 235 242          249 256 263 270      277 284 291 298        
+Thu 215 222 229 236 243          250 257 264 271      278 285 292 299        
+Fri 216 223 230 237          244 251 258 265 272      279 286 293 300        
+Sat 217 224 231 238          245 252 259 266 273      280 287 294 301        
diff --git a/tests/expected/cal/vertical-3sjwv b/tests/expected/cal/vertical-3sjwv
new file mode 100644 (file)
index 0000000..7c2a2d1
--- /dev/null
@@ -0,0 +1,10 @@
+Julian - Sunday-based week with week numbers
+     August 2006              September 2006           October 2006             
+Sun     218 225 232 239          246 253 260 267      274 281 288 295 302    
+Mon     219 226 233 240          247 254 261 268      275 282 289 296 303    
+Tue 213 220 227 234 241          248 255 262 269      276 283 290 297 304    
+Wed 214 221 228 235 242          249 256 263 270      277 284 291 298        
+Thu 215 222 229 236 243          250 257 264 271      278 285 292 299        
+Fri 216 223 230 237          244 251 258 265 272      279 286 293 300        
+Sat 217 224 231 238          245 252 259 266 273      280 287 294 301        
+     31  32  33  34  35       35  36  37  38  39       40  41  42  43  44    
diff --git a/tests/expected/cal/vertical-3sv b/tests/expected/cal/vertical-3sv
new file mode 100644 (file)
index 0000000..f0133f9
--- /dev/null
@@ -0,0 +1,9 @@
+Gregorian - Sunday-based week
+    August 2006        September 2006     October 2006       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
diff --git a/tests/expected/cal/vertical-3swv b/tests/expected/cal/vertical-3swv
new file mode 100644 (file)
index 0000000..5acb5da
--- /dev/null
@@ -0,0 +1,10 @@
+Gregorian - Sunday-based week with week numbers
+    August 2006        September 2006     October 2006       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+   31 32 33 34 35     35 36 37 38 39     40 41 42 43 44   
diff --git a/tests/expected/cal/vertical-vSn201 b/tests/expected/cal/vertical-vSn201
new file mode 100644 (file)
index 0000000..b9271ad
--- /dev/null
@@ -0,0 +1,603 @@
+Extreme span
+    May 1998           June 1998          July 1998          
+Su     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Mo     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Tu     5 12 19 26      2  9 16 23 30         7 14 21 28   
+We     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Th     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Fr  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Sa  2  9 16 23 30      6 13 20 27         4 11 18 25      
+
+    August 1998        September 1998     October 1998       
+Su     2  9 16 23 30      6 13 20 27         4 11 18 25   
+Mo     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Tu     4 11 18 25      1  8 15 22 29         6 13 20 27   
+We     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Th     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Fr     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Sa  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+
+    November 1998      December 1998      January 1999       
+Su  1  8 15 22 29         6 13 20 27         3 10 17 24 31
+Mo  2  9 16 23 30         7 14 21 28         4 11 18 25   
+Tu  3 10 17 24         1  8 15 22 29         5 12 19 26   
+We  4 11 18 25         2  9 16 23 30         6 13 20 27   
+Th  5 12 19 26         3 10 17 24 31         7 14 21 28   
+Fr  6 13 20 27         4 11 18 25         1  8 15 22 29   
+Sa  7 14 21 28         5 12 19 26         2  9 16 23 30   
+
+    February 1999      March 1999         April 1999         
+Su     7 14 21 28         7 14 21 28         4 11 18 25   
+Mo  1  8 15 22         1  8 15 22 29         5 12 19 26   
+Tu  2  9 16 23         2  9 16 23 30         6 13 20 27   
+We  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Th  4 11 18 25         4 11 18 25         1  8 15 22 29   
+Fr  5 12 19 26         5 12 19 26         2  9 16 23 30   
+Sa  6 13 20 27         6 13 20 27         3 10 17 24      
+
+    May 1999           June 1999          July 1999          
+Su     2  9 16 23 30      6 13 20 27         4 11 18 25   
+Mo     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Tu     4 11 18 25      1  8 15 22 29         6 13 20 27   
+We     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Th     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Fr     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Sa  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+
+    August 1999        September 1999     October 1999       
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    November 1999      December 1999      January 2000       
+Su     7 14 21 28         5 12 19 26         2  9 16 23 30
+Mo  1  8 15 22 29         6 13 20 27         3 10 17 24 31
+Tu  2  9 16 23 30         7 14 21 28         4 11 18 25   
+We  3 10 17 24         1  8 15 22 29         5 12 19 26   
+Th  4 11 18 25         2  9 16 23 30         6 13 20 27   
+Fr  5 12 19 26         3 10 17 24 31         7 14 21 28   
+Sa  6 13 20 27         4 11 18 25         1  8 15 22 29   
+
+    February 2000      March 2000         April 2000         
+Su     6 13 20 27         5 12 19 26         2  9 16 23 30
+Mo     7 14 21 28         6 13 20 27         3 10 17 24   
+Tu  1  8 15 22 29         7 14 21 28         4 11 18 25   
+We  2  9 16 23         1  8 15 22 29         5 12 19 26   
+Th  3 10 17 24         2  9 16 23 30         6 13 20 27   
+Fr  4 11 18 25         3 10 17 24 31         7 14 21 28   
+Sa  5 12 19 26         4 11 18 25         1  8 15 22 29   
+
+    May 2000           June 2000          July 2000          
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    August 2000        September 2000     October 2000       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    November 2000      December 2000      January 2001       
+Su     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Mo     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Tu     7 14 21 28         5 12 19 26      2  9 16 23 30   
+We  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Th  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Fr  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Sa  4 11 18 25         2  9 16 23 30      6 13 20 27      
+
+    February 2001      March 2001         April 2001         
+Su     4 11 18 25         4 11 18 25      1  8 15 22 29   
+Mo     5 12 19 26         5 12 19 26      2  9 16 23 30   
+Tu     6 13 20 27         6 13 20 27      3 10 17 24      
+We     7 14 21 28         7 14 21 28      4 11 18 25      
+Th  1  8 15 22         1  8 15 22 29      5 12 19 26      
+Fr  2  9 16 23         2  9 16 23 30      6 13 20 27      
+Sa  3 10 17 24         3 10 17 24 31      7 14 21 28      
+
+    May 2001           June 2001          July 2001          
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    August 2001        September 2001     October 2001       
+Su     5 12 19 26         2  9 16 23 30      7 14 21 28   
+Mo     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Tu     7 14 21 28         4 11 18 25      2  9 16 23 30   
+We  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+Th  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Fr  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Sa  4 11 18 25         1  8 15 22 29      6 13 20 27      
+
+    November 2001      December 2001      January 2002       
+Su     4 11 18 25         2  9 16 23 30      6 13 20 27   
+Mo     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Tu     6 13 20 27         4 11 18 25      1  8 15 22 29   
+We     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Th  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Fr  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Sa  3 10 17 24         1  8 15 22 29      5 12 19 26      
+
+    February 2002      March 2002         April 2002         
+Su     3 10 17 24         3 10 17 24 31      7 14 21 28   
+Mo     4 11 18 25         4 11 18 25      1  8 15 22 29   
+Tu     5 12 19 26         5 12 19 26      2  9 16 23 30   
+We     6 13 20 27         6 13 20 27      3 10 17 24      
+Th     7 14 21 28         7 14 21 28      4 11 18 25      
+Fr  1  8 15 22         1  8 15 22 29      5 12 19 26      
+Sa  2  9 16 23         2  9 16 23 30      6 13 20 27      
+
+    May 2002           June 2002          July 2002          
+Su     5 12 19 26         2  9 16 23 30      7 14 21 28   
+Mo     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Tu     7 14 21 28         4 11 18 25      2  9 16 23 30   
+We  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+Th  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Fr  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Sa  4 11 18 25         1  8 15 22 29      6 13 20 27      
+
+    August 2002        September 2002     October 2002       
+Su     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Mo     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Tu     6 13 20 27      3 10 17 24         1  8 15 22 29   
+We     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Th  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Fr  2  9 16 23 30      6 13 20 27         4 11 18 25      
+Sa  3 10 17 24 31      7 14 21 28         5 12 19 26      
+
+    November 2002      December 2002      January 2003       
+Su     3 10 17 24      1  8 15 22 29         5 12 19 26   
+Mo     4 11 18 25      2  9 16 23 30         6 13 20 27   
+Tu     5 12 19 26      3 10 17 24 31         7 14 21 28   
+We     6 13 20 27      4 11 18 25         1  8 15 22 29   
+Th     7 14 21 28      5 12 19 26         2  9 16 23 30   
+Fr  1  8 15 22 29      6 13 20 27         3 10 17 24 31   
+Sa  2  9 16 23 30      7 14 21 28         4 11 18 25      
+
+    February 2003      March 2003         April 2003         
+Su     2  9 16 23         2  9 16 23 30      6 13 20 27   
+Mo     3 10 17 24         3 10 17 24 31      7 14 21 28   
+Tu     4 11 18 25         4 11 18 25      1  8 15 22 29   
+We     5 12 19 26         5 12 19 26      2  9 16 23 30   
+Th     6 13 20 27         6 13 20 27      3 10 17 24      
+Fr     7 14 21 28         7 14 21 28      4 11 18 25      
+Sa  1  8 15 22         1  8 15 22 29      5 12 19 26      
+
+    May 2003           June 2003          July 2003          
+Su     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Mo     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Tu     6 13 20 27      3 10 17 24         1  8 15 22 29   
+We     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Th  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Fr  2  9 16 23 30      6 13 20 27         4 11 18 25      
+Sa  3 10 17 24 31      7 14 21 28         5 12 19 26      
+
+    August 2003        September 2003     October 2003       
+Su     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Mo     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Tu     5 12 19 26      2  9 16 23 30         7 14 21 28   
+We     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Th     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Fr  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Sa  2  9 16 23 30      6 13 20 27         4 11 18 25      
+
+    November 2003      December 2003      January 2004       
+Su     2  9 16 23 30      7 14 21 28         4 11 18 25   
+Mo     3 10 17 24      1  8 15 22 29         5 12 19 26   
+Tu     4 11 18 25      2  9 16 23 30         6 13 20 27   
+We     5 12 19 26      3 10 17 24 31         7 14 21 28   
+Th     6 13 20 27      4 11 18 25         1  8 15 22 29   
+Fr     7 14 21 28      5 12 19 26         2  9 16 23 30   
+Sa  1  8 15 22 29      6 13 20 27         3 10 17 24 31   
+
+    February 2004      March 2004         April 2004         
+Su  1  8 15 22 29         7 14 21 28         4 11 18 25   
+Mo  2  9 16 23         1  8 15 22 29         5 12 19 26   
+Tu  3 10 17 24         2  9 16 23 30         6 13 20 27   
+We  4 11 18 25         3 10 17 24 31         7 14 21 28   
+Th  5 12 19 26         4 11 18 25         1  8 15 22 29   
+Fr  6 13 20 27         5 12 19 26         2  9 16 23 30   
+Sa  7 14 21 28         6 13 20 27         3 10 17 24      
+
+    May 2004           June 2004          July 2004          
+Su     2  9 16 23 30      6 13 20 27         4 11 18 25   
+Mo     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Tu     4 11 18 25      1  8 15 22 29         6 13 20 27   
+We     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Th     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Fr     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Sa  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+
+    August 2004        September 2004     October 2004       
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    November 2004      December 2004      January 2005       
+Su     7 14 21 28         5 12 19 26         2  9 16 23 30
+Mo  1  8 15 22 29         6 13 20 27         3 10 17 24 31
+Tu  2  9 16 23 30         7 14 21 28         4 11 18 25   
+We  3 10 17 24         1  8 15 22 29         5 12 19 26   
+Th  4 11 18 25         2  9 16 23 30         6 13 20 27   
+Fr  5 12 19 26         3 10 17 24 31         7 14 21 28   
+Sa  6 13 20 27         4 11 18 25         1  8 15 22 29   
+
+    February 2005      March 2005         April 2005         
+Su     6 13 20 27         6 13 20 27         3 10 17 24   
+Mo     7 14 21 28         7 14 21 28         4 11 18 25   
+Tu  1  8 15 22         1  8 15 22 29         5 12 19 26   
+We  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Th  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Fr  4 11 18 25         4 11 18 25         1  8 15 22 29   
+Sa  5 12 19 26         5 12 19 26         2  9 16 23 30   
+
+    May 2005           June 2005          July 2005          
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    August 2005        September 2005     October 2005       
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    November 2005      December 2005      January 2006       
+Su     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Mo     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Tu  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+We  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Th  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Fr  4 11 18 25         2  9 16 23 30      6 13 20 27      
+Sa  5 12 19 26         3 10 17 24 31      7 14 21 28      
+
+    February 2006      March 2006         April 2006         
+Su     5 12 19 26         5 12 19 26         2  9 16 23 30
+Mo     6 13 20 27         6 13 20 27         3 10 17 24   
+Tu     7 14 21 28         7 14 21 28         4 11 18 25   
+We  1  8 15 22         1  8 15 22 29         5 12 19 26   
+Th  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Fr  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Sa  4 11 18 25         4 11 18 25         1  8 15 22 29   
+
+    May 2006           June 2006          July 2006          
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    August 2006        September 2006     October 2006       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    November 2006      December 2006      January 2007       
+Su     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Mo     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Tu     7 14 21 28         5 12 19 26      2  9 16 23 30   
+We  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Th  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Fr  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Sa  4 11 18 25         2  9 16 23 30      6 13 20 27      
+
+    February 2007      March 2007         April 2007         
+Su     4 11 18 25         4 11 18 25      1  8 15 22 29   
+Mo     5 12 19 26         5 12 19 26      2  9 16 23 30   
+Tu     6 13 20 27         6 13 20 27      3 10 17 24      
+We     7 14 21 28         7 14 21 28      4 11 18 25      
+Th  1  8 15 22         1  8 15 22 29      5 12 19 26      
+Fr  2  9 16 23         2  9 16 23 30      6 13 20 27      
+Sa  3 10 17 24         3 10 17 24 31      7 14 21 28      
+
+    May 2007           June 2007          July 2007          
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    August 2007        September 2007     October 2007       
+Su     5 12 19 26         2  9 16 23 30      7 14 21 28   
+Mo     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Tu     7 14 21 28         4 11 18 25      2  9 16 23 30   
+We  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+Th  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Fr  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Sa  4 11 18 25         1  8 15 22 29      6 13 20 27      
+
+    November 2007      December 2007      January 2008       
+Su     4 11 18 25         2  9 16 23 30      6 13 20 27   
+Mo     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Tu     6 13 20 27         4 11 18 25      1  8 15 22 29   
+We     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Th  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Fr  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Sa  3 10 17 24         1  8 15 22 29      5 12 19 26      
+
+    February 2008      March 2008         April 2008         
+Su     3 10 17 24         2  9 16 23 30      6 13 20 27   
+Mo     4 11 18 25         3 10 17 24 31      7 14 21 28   
+Tu     5 12 19 26         4 11 18 25      1  8 15 22 29   
+We     6 13 20 27         5 12 19 26      2  9 16 23 30   
+Th     7 14 21 28         6 13 20 27      3 10 17 24      
+Fr  1  8 15 22 29         7 14 21 28      4 11 18 25      
+Sa  2  9 16 23         1  8 15 22 29      5 12 19 26      
+
+    May 2008           June 2008          July 2008          
+Su     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Mo     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Tu     6 13 20 27      3 10 17 24         1  8 15 22 29   
+We     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Th  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Fr  2  9 16 23 30      6 13 20 27         4 11 18 25      
+Sa  3 10 17 24 31      7 14 21 28         5 12 19 26      
+
+    August 2008        September 2008     October 2008       
+Su     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Mo     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Tu     5 12 19 26      2  9 16 23 30         7 14 21 28   
+We     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Th     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Fr  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Sa  2  9 16 23 30      6 13 20 27         4 11 18 25      
+
+    November 2008      December 2008      January 2009       
+Su     2  9 16 23 30      7 14 21 28         4 11 18 25   
+Mo     3 10 17 24      1  8 15 22 29         5 12 19 26   
+Tu     4 11 18 25      2  9 16 23 30         6 13 20 27   
+We     5 12 19 26      3 10 17 24 31         7 14 21 28   
+Th     6 13 20 27      4 11 18 25         1  8 15 22 29   
+Fr     7 14 21 28      5 12 19 26         2  9 16 23 30   
+Sa  1  8 15 22 29      6 13 20 27         3 10 17 24 31   
+
+    February 2009      March 2009         April 2009         
+Su  1  8 15 22         1  8 15 22 29         5 12 19 26   
+Mo  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Tu  3 10 17 24         3 10 17 24 31         7 14 21 28   
+We  4 11 18 25         4 11 18 25         1  8 15 22 29   
+Th  5 12 19 26         5 12 19 26         2  9 16 23 30   
+Fr  6 13 20 27         6 13 20 27         3 10 17 24      
+Sa  7 14 21 28         7 14 21 28         4 11 18 25      
+
+    May 2009           June 2009          July 2009          
+Su     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Mo     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Tu     5 12 19 26      2  9 16 23 30         7 14 21 28   
+We     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Th     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Fr  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Sa  2  9 16 23 30      6 13 20 27         4 11 18 25      
+
+    August 2009        September 2009     October 2009       
+Su     2  9 16 23 30      6 13 20 27         4 11 18 25   
+Mo     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Tu     4 11 18 25      1  8 15 22 29         6 13 20 27   
+We     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Th     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Fr     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Sa  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+
+    November 2009      December 2009      January 2010       
+Su  1  8 15 22 29         6 13 20 27         3 10 17 24 31
+Mo  2  9 16 23 30         7 14 21 28         4 11 18 25   
+Tu  3 10 17 24         1  8 15 22 29         5 12 19 26   
+We  4 11 18 25         2  9 16 23 30         6 13 20 27   
+Th  5 12 19 26         3 10 17 24 31         7 14 21 28   
+Fr  6 13 20 27         4 11 18 25         1  8 15 22 29   
+Sa  7 14 21 28         5 12 19 26         2  9 16 23 30   
+
+    February 2010      March 2010         April 2010         
+Su     7 14 21 28         7 14 21 28         4 11 18 25   
+Mo  1  8 15 22         1  8 15 22 29         5 12 19 26   
+Tu  2  9 16 23         2  9 16 23 30         6 13 20 27   
+We  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Th  4 11 18 25         4 11 18 25         1  8 15 22 29   
+Fr  5 12 19 26         5 12 19 26         2  9 16 23 30   
+Sa  6 13 20 27         6 13 20 27         3 10 17 24      
+
+    May 2010           June 2010          July 2010          
+Su     2  9 16 23 30      6 13 20 27         4 11 18 25   
+Mo     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Tu     4 11 18 25      1  8 15 22 29         6 13 20 27   
+We     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Th     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Fr     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Sa  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+
+    August 2010        September 2010     October 2010       
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    November 2010      December 2010      January 2011       
+Su     7 14 21 28         5 12 19 26         2  9 16 23 30
+Mo  1  8 15 22 29         6 13 20 27         3 10 17 24 31
+Tu  2  9 16 23 30         7 14 21 28         4 11 18 25   
+We  3 10 17 24         1  8 15 22 29         5 12 19 26   
+Th  4 11 18 25         2  9 16 23 30         6 13 20 27   
+Fr  5 12 19 26         3 10 17 24 31         7 14 21 28   
+Sa  6 13 20 27         4 11 18 25         1  8 15 22 29   
+
+    February 2011      March 2011         April 2011         
+Su     6 13 20 27         6 13 20 27         3 10 17 24   
+Mo     7 14 21 28         7 14 21 28         4 11 18 25   
+Tu  1  8 15 22         1  8 15 22 29         5 12 19 26   
+We  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Th  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Fr  4 11 18 25         4 11 18 25         1  8 15 22 29   
+Sa  5 12 19 26         5 12 19 26         2  9 16 23 30   
+
+    May 2011           June 2011          July 2011          
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    August 2011        September 2011     October 2011       
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    November 2011      December 2011      January 2012       
+Su     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Mo     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Tu  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+We  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Th  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Fr  4 11 18 25         2  9 16 23 30      6 13 20 27      
+Sa  5 12 19 26         3 10 17 24 31      7 14 21 28      
+
+    February 2012      March 2012         April 2012         
+Su     5 12 19 26         4 11 18 25      1  8 15 22 29   
+Mo     6 13 20 27         5 12 19 26      2  9 16 23 30   
+Tu     7 14 21 28         6 13 20 27      3 10 17 24      
+We  1  8 15 22 29         7 14 21 28      4 11 18 25      
+Th  2  9 16 23         1  8 15 22 29      5 12 19 26      
+Fr  3 10 17 24         2  9 16 23 30      6 13 20 27      
+Sa  4 11 18 25         3 10 17 24 31      7 14 21 28      
+
+    May 2012           June 2012          July 2012          
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    August 2012        September 2012     October 2012       
+Su     5 12 19 26         2  9 16 23 30      7 14 21 28   
+Mo     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Tu     7 14 21 28         4 11 18 25      2  9 16 23 30   
+We  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+Th  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Fr  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Sa  4 11 18 25         1  8 15 22 29      6 13 20 27      
+
+    November 2012      December 2012      January 2013       
+Su     4 11 18 25         2  9 16 23 30      6 13 20 27   
+Mo     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Tu     6 13 20 27         4 11 18 25      1  8 15 22 29   
+We     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Th  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Fr  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Sa  3 10 17 24         1  8 15 22 29      5 12 19 26      
+
+    February 2013      March 2013         April 2013         
+Su     3 10 17 24         3 10 17 24 31      7 14 21 28   
+Mo     4 11 18 25         4 11 18 25      1  8 15 22 29   
+Tu     5 12 19 26         5 12 19 26      2  9 16 23 30   
+We     6 13 20 27         6 13 20 27      3 10 17 24      
+Th     7 14 21 28         7 14 21 28      4 11 18 25      
+Fr  1  8 15 22         1  8 15 22 29      5 12 19 26      
+Sa  2  9 16 23         2  9 16 23 30      6 13 20 27      
+
+    May 2013           June 2013          July 2013          
+Su     5 12 19 26         2  9 16 23 30      7 14 21 28   
+Mo     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Tu     7 14 21 28         4 11 18 25      2  9 16 23 30   
+We  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+Th  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Fr  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Sa  4 11 18 25         1  8 15 22 29      6 13 20 27      
+
+    August 2013        September 2013     October 2013       
+Su     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Mo     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Tu     6 13 20 27      3 10 17 24         1  8 15 22 29   
+We     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Th  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Fr  2  9 16 23 30      6 13 20 27         4 11 18 25      
+Sa  3 10 17 24 31      7 14 21 28         5 12 19 26      
+
+    November 2013      December 2013      January 2014       
+Su     3 10 17 24      1  8 15 22 29         5 12 19 26   
+Mo     4 11 18 25      2  9 16 23 30         6 13 20 27   
+Tu     5 12 19 26      3 10 17 24 31         7 14 21 28   
+We     6 13 20 27      4 11 18 25         1  8 15 22 29   
+Th     7 14 21 28      5 12 19 26         2  9 16 23 30   
+Fr  1  8 15 22 29      6 13 20 27         3 10 17 24 31   
+Sa  2  9 16 23 30      7 14 21 28         4 11 18 25      
+
+    February 2014      March 2014         April 2014         
+Su     2  9 16 23         2  9 16 23 30      6 13 20 27   
+Mo     3 10 17 24         3 10 17 24 31      7 14 21 28   
+Tu     4 11 18 25         4 11 18 25      1  8 15 22 29   
+We     5 12 19 26         5 12 19 26      2  9 16 23 30   
+Th     6 13 20 27         6 13 20 27      3 10 17 24      
+Fr     7 14 21 28         7 14 21 28      4 11 18 25      
+Sa  1  8 15 22         1  8 15 22 29      5 12 19 26      
+
+    May 2014           June 2014          July 2014          
+Su     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Mo     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Tu     6 13 20 27      3 10 17 24         1  8 15 22 29   
+We     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Th  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Fr  2  9 16 23 30      6 13 20 27         4 11 18 25      
+Sa  3 10 17 24 31      7 14 21 28         5 12 19 26      
+
+    August 2014        September 2014     October 2014       
+Su     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Mo     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Tu     5 12 19 26      2  9 16 23 30         7 14 21 28   
+We     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Th     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Fr  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Sa  2  9 16 23 30      6 13 20 27         4 11 18 25      
+
+    November 2014      December 2014      January 2015       
+Su     2  9 16 23 30      7 14 21 28         4 11 18 25   
+Mo     3 10 17 24      1  8 15 22 29         5 12 19 26   
+Tu     4 11 18 25      2  9 16 23 30         6 13 20 27   
+We     5 12 19 26      3 10 17 24 31         7 14 21 28   
+Th     6 13 20 27      4 11 18 25         1  8 15 22 29   
+Fr     7 14 21 28      5 12 19 26         2  9 16 23 30   
+Sa  1  8 15 22 29      6 13 20 27         3 10 17 24 31   
diff --git a/tests/expected/cal/vertical-vSn21 b/tests/expected/cal/vertical-vSn21
new file mode 100644 (file)
index 0000000..9aa3350
--- /dev/null
@@ -0,0 +1,63 @@
+Large span
+    November 2005      December 2005      January 2006       
+Su     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Mo     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Tu  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+We  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Th  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Fr  4 11 18 25         2  9 16 23 30      6 13 20 27      
+Sa  5 12 19 26         3 10 17 24 31      7 14 21 28      
+
+    February 2006      March 2006         April 2006         
+Su     5 12 19 26         5 12 19 26         2  9 16 23 30
+Mo     6 13 20 27         6 13 20 27         3 10 17 24   
+Tu     7 14 21 28         7 14 21 28         4 11 18 25   
+We  1  8 15 22         1  8 15 22 29         5 12 19 26   
+Th  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Fr  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Sa  4 11 18 25         4 11 18 25         1  8 15 22 29   
+
+    May 2006           June 2006          July 2006          
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    August 2006        September 2006     October 2006       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    November 2006      December 2006      January 2007       
+Su     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Mo     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Tu     7 14 21 28         5 12 19 26      2  9 16 23 30   
+We  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Th  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Fr  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Sa  4 11 18 25         2  9 16 23 30      6 13 20 27      
+
+    February 2007      March 2007         April 2007         
+Su     4 11 18 25         4 11 18 25      1  8 15 22 29   
+Mo     5 12 19 26         5 12 19 26      2  9 16 23 30   
+Tu     6 13 20 27         6 13 20 27      3 10 17 24      
+We     7 14 21 28         7 14 21 28      4 11 18 25      
+Th  1  8 15 22         1  8 15 22 29      5 12 19 26      
+Fr  2  9 16 23         2  9 16 23 30      6 13 20 27      
+Sa  3 10 17 24         3 10 17 24 31      7 14 21 28      
+
+    May 2007           June 2007          July 2007          
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
diff --git a/tests/expected/cal/vertical-vSn3 b/tests/expected/cal/vertical-vSn3
new file mode 100644 (file)
index 0000000..023558a
--- /dev/null
@@ -0,0 +1,9 @@
+Normal span
+    August 2006        September 2006     October 2006       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
diff --git a/tests/expected/cal/vertical-vSn51 b/tests/expected/cal/vertical-vSn51
new file mode 100644 (file)
index 0000000..aec0fcc
--- /dev/null
@@ -0,0 +1,153 @@
+Very Large span
+    August 2004        September 2004     October 2004       
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    November 2004      December 2004      January 2005       
+Su     7 14 21 28         5 12 19 26         2  9 16 23 30
+Mo  1  8 15 22 29         6 13 20 27         3 10 17 24 31
+Tu  2  9 16 23 30         7 14 21 28         4 11 18 25   
+We  3 10 17 24         1  8 15 22 29         5 12 19 26   
+Th  4 11 18 25         2  9 16 23 30         6 13 20 27   
+Fr  5 12 19 26         3 10 17 24 31         7 14 21 28   
+Sa  6 13 20 27         4 11 18 25         1  8 15 22 29   
+
+    February 2005      March 2005         April 2005         
+Su     6 13 20 27         6 13 20 27         3 10 17 24   
+Mo     7 14 21 28         7 14 21 28         4 11 18 25   
+Tu  1  8 15 22         1  8 15 22 29         5 12 19 26   
+We  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Th  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Fr  4 11 18 25         4 11 18 25         1  8 15 22 29   
+Sa  5 12 19 26         5 12 19 26         2  9 16 23 30   
+
+    May 2005           June 2005          July 2005          
+Su  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Mo  2  9 16 23 30         6 13 20 27         4 11 18 25   
+Tu  3 10 17 24 31         7 14 21 28         5 12 19 26   
+We  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Th  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Fr  6 13 20 27         3 10 17 24         1  8 15 22 29   
+Sa  7 14 21 28         4 11 18 25         2  9 16 23 30   
+
+    August 2005        September 2005     October 2005       
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    November 2005      December 2005      January 2006       
+Su     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Mo     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Tu  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+We  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Th  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Fr  4 11 18 25         2  9 16 23 30      6 13 20 27      
+Sa  5 12 19 26         3 10 17 24 31      7 14 21 28      
+
+    February 2006      March 2006         April 2006         
+Su     5 12 19 26         5 12 19 26         2  9 16 23 30
+Mo     6 13 20 27         6 13 20 27         3 10 17 24   
+Tu     7 14 21 28         7 14 21 28         4 11 18 25   
+We  1  8 15 22         1  8 15 22 29         5 12 19 26   
+Th  2  9 16 23         2  9 16 23 30         6 13 20 27   
+Fr  3 10 17 24         3 10 17 24 31         7 14 21 28   
+Sa  4 11 18 25         4 11 18 25         1  8 15 22 29   
+
+    May 2006           June 2006          July 2006          
+Su     7 14 21 28         4 11 18 25         2  9 16 23 30
+Mo  1  8 15 22 29         5 12 19 26         3 10 17 24 31
+Tu  2  9 16 23 30         6 13 20 27         4 11 18 25   
+We  3 10 17 24 31         7 14 21 28         5 12 19 26   
+Th  4 11 18 25         1  8 15 22 29         6 13 20 27   
+Fr  5 12 19 26         2  9 16 23 30         7 14 21 28   
+Sa  6 13 20 27         3 10 17 24         1  8 15 22 29   
+
+    August 2006        September 2006     October 2006       
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    November 2006      December 2006      January 2007       
+Su     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Mo     6 13 20 27         4 11 18 25      1  8 15 22 29   
+Tu     7 14 21 28         5 12 19 26      2  9 16 23 30   
+We  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Th  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Fr  3 10 17 24         1  8 15 22 29      5 12 19 26      
+Sa  4 11 18 25         2  9 16 23 30      6 13 20 27      
+
+    February 2007      March 2007         April 2007         
+Su     4 11 18 25         4 11 18 25      1  8 15 22 29   
+Mo     5 12 19 26         5 12 19 26      2  9 16 23 30   
+Tu     6 13 20 27         6 13 20 27      3 10 17 24      
+We     7 14 21 28         7 14 21 28      4 11 18 25      
+Th  1  8 15 22         1  8 15 22 29      5 12 19 26      
+Fr  2  9 16 23         2  9 16 23 30      6 13 20 27      
+Sa  3 10 17 24         3 10 17 24 31      7 14 21 28      
+
+    May 2007           June 2007          July 2007          
+Su     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Mo     7 14 21 28         4 11 18 25      2  9 16 23 30   
+Tu  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+We  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Th  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Fr  4 11 18 25         1  8 15 22 29      6 13 20 27      
+Sa  5 12 19 26         2  9 16 23 30      7 14 21 28      
+
+    August 2007        September 2007     October 2007       
+Su     5 12 19 26         2  9 16 23 30      7 14 21 28   
+Mo     6 13 20 27         3 10 17 24      1  8 15 22 29   
+Tu     7 14 21 28         4 11 18 25      2  9 16 23 30   
+We  1  8 15 22 29         5 12 19 26      3 10 17 24 31   
+Th  2  9 16 23 30         6 13 20 27      4 11 18 25      
+Fr  3 10 17 24 31         7 14 21 28      5 12 19 26      
+Sa  4 11 18 25         1  8 15 22 29      6 13 20 27      
+
+    November 2007      December 2007      January 2008       
+Su     4 11 18 25         2  9 16 23 30      6 13 20 27   
+Mo     5 12 19 26         3 10 17 24 31      7 14 21 28   
+Tu     6 13 20 27         4 11 18 25      1  8 15 22 29   
+We     7 14 21 28         5 12 19 26      2  9 16 23 30   
+Th  1  8 15 22 29         6 13 20 27      3 10 17 24 31   
+Fr  2  9 16 23 30         7 14 21 28      4 11 18 25      
+Sa  3 10 17 24         1  8 15 22 29      5 12 19 26      
+
+    February 2008      March 2008         April 2008         
+Su     3 10 17 24         2  9 16 23 30      6 13 20 27   
+Mo     4 11 18 25         3 10 17 24 31      7 14 21 28   
+Tu     5 12 19 26         4 11 18 25      1  8 15 22 29   
+We     6 13 20 27         5 12 19 26      2  9 16 23 30   
+Th     7 14 21 28         6 13 20 27      3 10 17 24      
+Fr  1  8 15 22 29         7 14 21 28      4 11 18 25      
+Sa  2  9 16 23         1  8 15 22 29      5 12 19 26      
+
+    May 2008           June 2008          July 2008          
+Su     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Mo     5 12 19 26      2  9 16 23 30         7 14 21 28   
+Tu     6 13 20 27      3 10 17 24         1  8 15 22 29   
+We     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Th  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Fr  2  9 16 23 30      6 13 20 27         4 11 18 25      
+Sa  3 10 17 24 31      7 14 21 28         5 12 19 26      
+
+    August 2008        September 2008     October 2008       
+Su     3 10 17 24 31      7 14 21 28         5 12 19 26   
+Mo     4 11 18 25      1  8 15 22 29         6 13 20 27   
+Tu     5 12 19 26      2  9 16 23 30         7 14 21 28   
+We     6 13 20 27      3 10 17 24         1  8 15 22 29   
+Th     7 14 21 28      4 11 18 25         2  9 16 23 30   
+Fr  1  8 15 22 29      5 12 19 26         3 10 17 24 31   
+Sa  2  9 16 23 30      6 13 20 27         4 11 18 25      
diff --git a/tests/ts/cal/vertical b/tests/ts/cal/vertical
new file mode 100755 (executable)
index 0000000..f92f042
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+#
+# Copyright (C) 2007-2018 Karel Zak <kzak@redhat.com>
+#
+# This file is part of util-linux.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+
+TS_TOPDIR="${0%/*}/../.."
+TS_DESC="vertical"
+
+. $TS_TOPDIR/functions.sh
+ts_init "$*"
+
+ts_check_test_command "$TS_HELPER_CAL"
+
+export TERM=linux
+
+USETERM=$( ts_has_option "useterm" "$*" )
+MYTIME="27 09 2006"
+
+CAL_TEST_TIME=1516562739  # 21st January 2018
+export CAL_TEST_TIME
+
+function call_cal {
+       local testname=$(echo "$2" | sed 's/-//g; s/ //g')
+
+       ts_init_subtest "$testname"
+       ts_log "$1"
+       shift
+       if [ "$USETERM" == "yes" ]; then
+               $TS_HELPER_CAL "$@"
+       fi
+       $TS_HELPER_CAL "$@" >> $TS_OUTPUT
+
+       ts_finalize_subtest
+}
+
+call_cal "Gregorian - Monday-based week" -1mv $MYTIME
+call_cal "Gregorian - Sunday-based week" -1sv $MYTIME
+call_cal "Julian - Monday-based week" -1mjv $MYTIME
+call_cal "Julian - Sunday-based week" -1sjv $MYTIME
+call_cal "Gregorian - Monday-based week with week numbers" -1mwv $MYTIME
+call_cal "Gregorian - Sunday-based week with week numbers" -1swv $MYTIME
+call_cal "Julian - Monday-based week with week numbers" -1mjwv $MYTIME
+call_cal "Julian - Sunday-based week with week numbers" -1sjwv $MYTIME
+call_cal "Gregorian - Monday-based week" -3mv $MYTIME
+call_cal "Gregorian - Sunday-based week" -3sv $MYTIME
+call_cal "Julian - Monday-based week" -3mjv $MYTIMET
+call_cal "Julian - Sunday-based week" -3sjv $MYTIME
+call_cal "Gregorian - Monday-based week with week numbers" -3mwv $MYTIME
+call_cal "Gregorian - Sunday-based week with week numbers" -3swv $MYTIME
+call_cal "Julian - Monday-based week with week numbers" -3mjwv $MYTIME
+call_cal "Julian - Sunday-based week with week numbers" -3sjwv $MYTIME
+
+call_cal "Normal span" "-vSn 3" $MYTIME
+call_cal "Large span" "-vSn 21" $MYTIME
+call_cal "Very Large span" "-vSn 51" $MYTIME
+call_cal "Extreme span" "-vSn 201" $MYTIME
+
+ts_finalize
+