Показать немецкое имя дня и номер недели - PullRequest
0 голосов
/ 26 апреля 2019

Я построил планировщик с помощью dxScheduler.Вы хотите отобразить название дня в dx-scheduler-header-row на немецком языке.

Я локализовал свою заявку в Германии.

Пока у меня есть:

<div *dxTemplate="let data of 'dateCellTemplate' let dataIndex = index">
        <div [ngClass]="getClassName(data)">
             <span>{{[data.date | date :'EEEE dd.MM [w]'}}</span>
         </div>
</div>

Это показывает мне

Понедельник 22.04 [17];Вторник, 23.04 [17]

и так далее.

Я хочу туда

Монтег 22.04 [17];Dienstag 23.04 [17]

РЕДАКТИРОВАТЬ:

Решением я только что решил проблему понедельника => Montag.Но с номером недели это не работает!

Формат: День Дата [Номер недели]

Пн 29.04 [18] ... Сб 04.05 [18] Итак 05.05 [19] <- ????</p>

Почему номер недели здесь 19?Должно быть 18.

1 Ответ

0 голосов
/ 09 мая 2019

Благодаря @briosheje у меня есть верный путь ToDO:

в myComponent.component.html Я изменил:

<div *dxTemplate="let data of 'dateCellTemplate' let dataIndex = index">
        <div [ngClass]="getClassName(data)">
             <span>{{[data.date | date :'EEEE dd.MM [w]'}}</span>
         </div>
</div>

К

<div *dxTemplate="let data of 'dateCellTemplate' let dataIndex = index">
    <div [ngClass]="getClassName(data)">
        <span>{{[ data.date | date : '.MM' ]}}</span><br>
        <span>{{[ data.date | wochenNummer ]}}</span>
    </div>            
</div>

Где "wochenNummer" - это имя моей трубы.

Создать трубу

ng generate pipe WochenNummer

Это создает 2 файла

Wochen-nummer.pipe.spec.ts Wochen-nummer.pipe.ts

В wochen-nummer.pipe.ts У меня есть:

 export class WochenNummerPipe implements PipeTransform {

  transform(value: Date): string {
    // Copy date so don't modify original
    value = new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate()));
    // Set to nearest Thursday: current date + 4 - current day number
    // Make Sunday's day number 7
    value.setUTCDate(value.getUTCDate() + 4 - (value.getUTCDay() || 7));
    // Get first day of year
    const yearStart = new Date(Date.UTC( value.getUTCFullYear(), 0, 1));
    // Calculate full weeks to nearest Thursday
    const weekNo = Math.ceil(( ( (+value - +yearStart) / 86400000) + 1) / 7);
    // Return array of year and week number
    const returner = '[' + weekNo + ']';
    return returner;
  }

}

здесь у меня есть подсчет номера недели. @briosheje постет ссылка выше

Чтобы все заработало, мне пришлось включить трубу в myComponent.module.ts

@NgModule({
  imports: [
    ...
  ],
  providers: [WochenNummerPipe],
  declarations: [
    ...  ,
    WochenNummerPipe
  ]
})

Все вместе я получил это: изображение моего шаблона ячейки заголовка с правильным номером недели и немецкими именами дней

Я счастлив:)

...